Mar*_*ark -2 c macros conditional-compilation
我在编译过程中传递了一个 macto:
% gcc -DIDENT="abcd" app.c
在编译宏期间检查的正确方法是什么?例如下面的工作,但抛出警告:
#ifdef IDENT == "abcd"
printf("abcd\n");
#endif
Run Code Online (Sandbox Code Playgroud)
警告:#ifdef 指令末尾的额外标记。
#ifdef 测试是否定义了符号,而不是值是什么,因此仅在以下情况下有效
#ifdef SYMBOL
Run Code Online (Sandbox Code Playgroud)
#if 表达式将测试表达式是否为真,但仅限于整数。
有关更多信息,请参阅 gcc 预处理器手册:
https://gcc.gnu.org/onlinedocs/cpp/If.html
https://gcc.gnu.org/onlinedocs/cpp/Ifdef.html#Ifdef