我可以在宏中检测到局部变量的存在吗?

时间:2012-11-26 06:56:37

标签: c macros c-preprocessor

有没有办法安全地检查当前范围内是否存在某个命名变量(让我们称之为“foo”)?我想要一个宏,比如,如果它存在,则使用“foo”,否则做其他事情。我可以在这里使用任何运行时技巧吗?

(实际情况是试图解决this problem,但我意识到这可能是一个特例,所以一个单独的问题似乎也很有趣。)

1 个答案:

答案 0 :(得分:2)

不幸的是,没有。编译器负责解析变量名称并为其分配范围,预处理器在编译器之前运行。因此它无法访问该信息。