【发布时间】:2014-12-11 10:47:36
【问题描述】:
您好,我在定义依赖于变量的宏时需要帮助。 例如:
#if TEMP
#define COUNT 5
#else
#define COUNT 6
#endif
TEMP 将在函数中设置。 例如:
void func()
{
TEMP = 1;
}
设置 count 宏和定义 temp 在不同的文件中。
谁能帮我解决这个问题?
TIA 苏米亚
【问题讨论】:
-
defines 用于“预处理器”。 -
你不能像普通变量一样设置预处理器宏,尤其是运行时。在实际编译器之前,预处理器作为编译过程中的一个单独步骤运行。
-
为什么将 COUNT 定义为宏而不是变量?顺便说一句,您不能将变量名放在
define预处理器命令中。 -
无意冒犯,但您显然不知道自己在做什么。我建议您忘记预处理器和
#define,并尝试使用变量bool temp = false; int count = temp ? 5 : 6; ... temp = true;等。如果您有理由不这样做,请分享。 -
托尼,Count 不是整数。它实际上是根据 TEMP 启用和禁用 gpio。所以我不能使用 bool 类型。
标签: c++ c c-preprocessor