-2

我想接收我定义的变量的输出值check
是否#define check something 可以使用某些预处理器指令接收此值?
例如这样的:
#error check

4

3 回答 3

2

#error指令不是宏扩展的。也不是#warning

这意味着您不能使用#erroror输出预处理器表达式#warning

根据预处理器表达式的值,您可以得到最接近的消息是这样的:

#if (MACRO < 12)
#error MACRO was less than 12
#elif (MACRO >15 && MACRO < 19)
#error Another message about MACRO
#endif

有关更多信息,请参阅文档中的“条件”:

于 2012-10-19T09:46:11.337 回答
1

不。

变量在编译时没有值,只有在运行时。预处理器不在运行时运行,仅在编译时运行。

此外,预处理器不解析语言,它只处理文本。它不知道您的变量声明。

于 2012-10-19T09:29:05.740 回答
0

如果您必须获得它的价值,请尝试仅预处理有潜在错误的文件。

 for gcc: gcc -E

然后您可以手动检查它的扩展内容。

于 2012-10-19T10:25:47.717 回答