【发布时间】:2012-06-13 13:26:07
【问题描述】:
当使用像#if TRUE 这样的语句时,我应该期待会发生什么?一个解释将不胜感激!我了解#if 1 的工作原理,但它在我的代码中给出的结果与使用#if TRUE 完全不同。我知道#if 是一个条件指令,这意味着什么;这只是我不明白的TRUE(或FALSE)部分。似乎以这种方式使用它永远不会执行语句之后的代码。这是一个例子:
#if TRUE
cout << "true" << endl;
#endif
#if FALSE
cout << "false" << endl;
#endif
我似乎从来没有看到“真”或“假”打印到屏幕上,使用 Visual Studio,内部语句自动变灰。
【问题讨论】:
-
您只需测试是否声明了该宏。通常在 WinDef.h 中,它们被声明为与 BOOL 一起使用。
-
“TRUE”不是保留字吗?
-
不,它只是一个用#define win WinDef.h 声明的宏(参见msdn.microsoft.com/en-us/library/windows/desktop/…)。保留字为“true”(小写)。
-
如果这是一个宏,通常会在哪里定义?我试过搜索所有文档都没有运气。
-
欢迎您。看我之前的cmets,它是在头文件WinDef.h中定义的
标签: c++ c-preprocessor