1

我正在使用#define ENABLE_FLAG内部 C++ 代码并相应地尝试包含一段代码,同时ENABLE_FLAG定义。

我的问题是,里面的特定代码集

#ifdef ENABLE_FLAG
....setofcode....
#endif

是在运行时通过#ifdef检查评估还是编译器本身ENABLE_FLAG在编译期间看到并包含代码?

4

2 回答 2

4

#ifdef并且您看到的所有其他以 a#作为第一个字符的内容都是“C 预处理器指令”。这些甚至在正确编译之前就已处理。所以根本不会做出运行时决定——启用/禁用代码块是在构建过程的最早部分决定的。

于 2013-10-13T02:12:32.350 回答
2

#define设置是编译时,并在运行时持续存在。

于 2013-10-13T02:12:43.413 回答