我指的是这样的情况(当然,这只是错误代码/idea /我知道它不是那样工作的):
int main() {
int my_int = 42;
#ifdef my_int
my_int = 43;
#else
int my_int = 43;
}我知道c/c++程序不能看到变量的名称,也不能判断是否设置了变量,但编译器可以这样做。我在这里问,当编译器遇到相同块中有重复声明的情况时,是否可以将编译器定向到给定的操作,比如省略或插入代码片段。
发布于 2014-02-07 11:41:18
不是的。当您有重复声明时,唯一可能发生的事情是编译器错误。总是畸形的。因为预处理器不知道变量,所以你也不能使用它。
发布于 2014-02-07 11:42:19
不,不可能。即使有,使用它也会走向疯狂的道路。
如果您知道符号的声明是以某个已定义的常量为条件的,请在该常量上使用#ifdef来决定要做什么。
如果您不知道符号声明的条件是什么,那么您就不应该在这个符号上乱搞,因为它显然是在项目的外部。
https://stackoverflow.com/questions/21626815
复制相似问题