Eig*_*ght 13 c gcc c-preprocessor
在这个c
计划中
#include<stdio.h>
int main()
{
#if UnDefinedSymbolicConstant==0
printf("UnDefinedSymbolicConstant is equal to 0\n ");
#else
printf("UnDefinedSymbolicConstant is not equal to 0\n");
#endif
return 0;
}
Run Code Online (Sandbox Code Playgroud)
UnDefinedSymbolicConstant不在#define
任何地方,仍被假定为0并将输出打开gcc-4.3.4
为:
UnDefinedSymbolicConstant is equal to 0
Run Code Online (Sandbox Code Playgroud)
那么, 这是标准的行为还是只在gcc中才这样?
这是默认设置,但您可以使用-Wundef
gcc选项至少为此生成警告.
`-Wundef': 只要在'#if'指令中遇到一个不是宏的标识符,在`defined'之外发出警告.这些标识符被替换为零.