C-定义宏的预处理器

时间:2014-12-11 10:47:37

标签: c++ c c-preprocessor

您好我需要帮助定义一个依赖于变量的宏。 对于Eg:

#if TEMP
   #define COUNT  5
#else
   #define COUNT  6
#endif

TEMP将在一个函数中设置。 例如:

void func()
{
    TEMP = 1;
}

设置计数宏和定义temp在不同的文件中。

有人可以帮我吗?

TIA Sowmya

2 个答案:

答案 0 :(得分:2)

这是不可能的。 TEMP仅在运行时设置,不可用于预处理。如果需要-DTEMPCOUNT,可以使用5作为编译器标志来定义它。您必须将代码更改为以下内容:

#ifdef TEMP
  #define COUNT 5
#else
  #define COUNT 6
#endif

答案 1 :(得分:0)

这是不可能的。在编译期间会解析宏,因此像设置变量这样的运行时更改不会影响它们。