有没有办法检查变量是否在编译时声明?

rsk*_*k82 0 c c++

我的意思是这样的情况(这当然是假代码/想法/因为我知道它不像那样工作):

int main() {
  int my_int = 42;
  #ifdef my_int
    my_int = 43;
  #else
    int my_int = 43;
}
Run Code Online (Sandbox Code Playgroud)

我知道c/c ++程序看不到变量的名称,也无法判断它是否已设置但是编译器可以做到,我在这里问是否有任何方法可以将编译器指向给定的操作,例如省略或插入代码片段当遇到同一块中存在重复声明的情况时的代码.

Lig*_*ica 6

不会.当您有重复的声明时,唯一可能发生的是编译器错误.它总是形成不良.并且因为预处理器不知道变量,所以也不能使用它.