C++,使用#if true条件指令

2022-03-26 00:00:00 c++ c-preprocessor

使用#if TRUE这样的语句时,我应该预期会发生什么情况?如果您能给我一个解释,我们将不胜感激!我了解#if 1是如何工作的,但是它在我的代码中给出的结果与使用#if TRUE完全不同。我理解#if是一个条件指令,这意味着什么;我只是不理解TRUE(或FALSE)部分。似乎以这种方式使用它永远不会执行语句后面的代码。下面是一个示例:

#if TRUE
     cout << "true" << endl;
#endif

#if FALSE
     cout << "false" << endl;
#endif

我似乎从未看到";true";或";false";打印到屏幕上,并且使用Visual Studio时,内部语句会自动灰显。


解决方案

预处理器将包括/排除#if #endif挡路的内容,具体取决于#if后的表达式计算为TRUE还是FALSE。

#if TRUE仅当

  • 定义宏TRUE
  • TRUE!=0
  • 的值

在您的示例中,TRUEFALSE均未定义,因此这两个块都是FALSE且被排除。

相关文章