我的意思是这样的情况(这当然是假代码/想法/因为我知道它不起作用):
int main() {
int my_int = 42;
#ifdef my_int
my_int = 43;
#else
int my_int = 43;
}
我知道c / c ++程序看不到变量的名称,也无法判断它是否已设置但是编译器可以这样做,我问这里是否有任何方法可以将编译器指向给定的操作,如省略或在遇到同一块中存在重复声明的情况时插入一段代码。
答案 0 :(得分:6)
没有。当您有重复的声明时,唯一可能发生的是编译器错误。它总是形成不良。而且由于预处理器不知道变量,你也不能使用它。
答案 1 :(得分:1)
不,没有办法。即使有,使用它也会走向疯狂的道路。
如果你知道符号的声明是以某个已定义的常量为条件的,那么在该常量上使用#ifdef
来决定该做什么。
如果你不知道符号的声明是什么条件,你真的不应该乱用那个符号,因为它显然是你项目的外部。