为什么 #define SOMETHING TRUE 对 #if 不起作用?

Dam*_*les 0 c++ c-preprocessor

以下代码打印main.cpp:20:19: note: #pragma message: serial disabled. 我原以为会打印出“enabled”。代码有什么问题吗?

int main()
{
#define SERIAL_ENABLED TRUE

#if SERIAL_ENABLED
  #pragma message "serial enabled"
#else
  #pragma message "serial disabled"
#endif

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

jla*_*nik 5

TRUE 未定义。使用真实。