Hie*_*eli 5 c++ compiler-directives visual-studio visual-c++ c-preprocessor
使用类似的声明时#if TRUE,我应该发生什么?非常感谢您的解释!我理解#if 1它是如何工作的,但它在我的代码中给出了完全不同的结果而不是使用#if TRUE.我理解#if是条件指令,这意味着什么; 它只是我不理解的TRUE(或FALSE)部分.似乎以这种方式使用它从不执行语句后面的代码.这是一个例子:
#if TRUE
cout << "true" << endl;
#endif
#if FALSE
cout << "false" << endl;
#endif
Run Code Online (Sandbox Code Playgroud)
我似乎永远不会在屏幕上看到"true"或"false",并且使用Visual Studio,内部语句会自动显示为灰色.
预处理器将包括/排除#if #endif块的内容,具体取决于#if评估为true或false 后的表达式.
#if TRUE 只会评估为真
TRUE已定义TRUE=!= 0在您的示例中既未定义TRUE也FALSE未定义,因此两个块都为false并被排除.
TRUE和FALSE是Windows 中的宏,但在中声明WinDef.h。
如果包含标题,则会看到TRUEis 1和FALSEis 0。因此,第一个语句应该执行,第二个语句不应该执行。
如果不包括标题,则两者都将是未定义的,并且将不会执行任何语句。
| 归档时间: |
|
| 查看次数: |
4280 次 |
| 最近记录: |