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

is there a way to check if variable is declared at compile time?

本文关键字:编译 声明 变量 是否 检查 有没有      更新时间:2023-10-16

我的意思是这样的情况(这当然是错误的代码/想法/我知道它不起作用):

int main() {
  int my_int = 42;
  #ifdef my_int
    my_int = 43;
  #else
    int my_int = 43;
}

我知道C/C 程序无法看到变量的名称,并且无法分辨出它是否设置了,但是编译器可以做到,我问我是否有任何方法可以将编译器引导到给定的操作,例如省略或当代码在同一块中有重复声明时遇到一个情况时,插入了代码段。

no。当您有重复的声明时,唯一发生的事情是编译器错误。它总是不构想的。而且由于预处理器没有变量的知识,因此您也不能使用它。

不,没有办法。即使存在,使用它也会走向疯狂的道路。

如果您知道符号的声明在某些定义常数上是有条件的,请在该常数上使用#ifdef来决定该怎么做。

如果您不知道符号的声明是有条件的,那么您真的不应该弄乱该符号,因为显然它是项目的外部。