c - 使用 if 子句代替处理器 #ifdef

标签 c compiler-flags

我正在使用 #ifdef block 根据传递给编译器的 -Dflag 有条件地包含一个代码块。

有没有办法用 if 来实现这个?

类似的东西:

if (defined(flag)) {

}

最佳答案

您使用预处理器生成不同的标志,可以使用运行时 if 语句对其进行测试,如下所示:

#ifdef flag
#define flag_defined 1
#else
#define flag_defined 0
#endif

现在你可以这样做了:

if (flag_defined) ...

关于c - 使用 if 子句代替处理器 #ifdef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844034/

相关文章:

c - gcc -u 符号编译器选项

android - 有没有办法在链接时覆盖-fvisibility=hidden?

gcc - 何时对多个共享库使用某些优化,例如 -fwhole-program 和 -fprofile-generate

c - 在 fgetc 问题之后使用 fscanf

c - 信号量的标准原子操作

shared-libraries - -fPIC 编译标志有什么作用?

gcc - 如何在代码块上添加编译器标志

c - 如果结构仅包含字节数组,则 `#pragma pack(1)` 有风险/危险

c - 如何在包含多个头文件时避免重新定义类型?

c - 如何检查 256i(16 位) vector 以了解它是否包含大于零的元素?