通过更改宏的值进行条件编译

时间:2018-11-17 08:56:26

标签: c compilation macros conditional-statements

例如,我想使用条件编译来编译程序而无需重新定义宏

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

如果我将宏的值更改为0,则else部分未得到执行,而是如果单独执行了part,如果我更改了宏,或者如果仅声明了else部分,则我的问题是,有没有一种方法可以通过读取宏的值来进行条件编译?

1 个答案:

答案 0 :(得分:0)

您想要的是#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