【问题标题】:Conditional compilation by changing the value of macro通过改变宏的值进行条件编译
【发布时间】:2019-04-20 08:11:08
【问题描述】:

我想在不重新定义宏的情况下用条件编译来编译程序,例如

#include <stdio.h>
#define X 1
int main ()
{
    #ifdef X
    printf("HI\n");
    #else
    printf("Hello\n");
    #endif // X
    return 0;
}

如果我将宏的值更改为 0,则 else 部分不会被执行,而是单独执行 if 部分,如果我更改宏或单独 if 语句,则 else 部分正在被编译,我的问题是,有没有办法通过读取宏的值来条件编译?

【问题讨论】:

    标签: c compilation macros conditional-statements


    【解决方案1】:

    你想要的是#if

    #if X
    printf("HI\n");     // will be compiled if X is anything but 0
    #else
    printf("Hello\n");  // will be compiled if X is 0
    #endif // X
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 1970-01-01
      • 2018-09-03
      • 2019-01-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多