标签: c macros c-preprocessor
有没有办法安全地检查当前范围内是否存在某个命名变量(让我们称之为“foo”)?我想要一个宏,比如,如果它存在,则使用“foo”,否则做其他事情。我可以在这里使用任何运行时技巧吗?
(实际情况是试图解决this problem,但我意识到这可能是一个特例,所以一个单独的问题似乎也很有趣。)
答案 0 :(得分:2)
不幸的是,没有。编译器负责解析变量名称并为其分配范围,预处理器在编译器之前运行。因此它无法访问该信息。