2012-10-19 79 views
-2

我想收到在与#define check something dfeined变量check
我的产值有可能收到一些预处理指令这个价值?
例如是这样的:
#error check预处理指令返回值

+0

什么?你想达到什么目的? – Naveen

+0

@Naveen我有somwere定义检查(#define检查一些东西)与一些我实际上不知道的值,我想检查现在检查变量的值。 – Arseniy

回答

2

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

这意味着你不能使用#error#warning

你可以去给依赖的价值观消息最近输出预处理程序表达式预处理器表达式就像这样:

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

请参阅“条件语句”的文档中的更多:

1

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

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

0

如果你必须得到它的价值,尽量只预工艺,具有潜在错误的文件。

for gcc: gcc -E 

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