我想接收我定义的变量的输出值check
是否#define check something
可以使用某些预处理器指令接收此值?
例如这样的:
#error check
问问题
369 次
3 回答
2
该#error
指令不是宏扩展的。也不是#warning
。
这意味着您不能使用#error
or输出预处理器表达式#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 回答