我遇到了一个在C头文件中定义的宏,我对理解有点麻烦.
#if BAR
#define FOO(s,err) \
((SOMEPOINTER)(s))->VALID != SOMEVARIABLE \
? (err) \
:
#else
#define FOO(s,err)
Run Code Online (Sandbox Code Playgroud)
就是这样.我理解if/ else正在发生什么,但我不确定第一个宏定义FOO是做什么的.显然有一个三元操作正在进行,但我很好奇,->因为我在网上找不到它的引用.我也很好奇这里似乎没有任何返回值.如果不管结果如何都没有返回,那么进行比较的重点是什么?说实话,那里的"\"家伙也吓坏了我.