有没有办法检查是否在编译时声明变量
is there a way to check if variable is declared at compile time?
我的意思是这样的情况(这当然是错误的代码/想法/我知道它不起作用):
int main() {
int my_int = 42;
#ifdef my_int
my_int = 43;
#else
int my_int = 43;
}
我知道C/C 程序无法看到变量的名称,并且无法分辨出它是否设置了,但是编译器可以做到,我问我是否有任何方法可以将编译器引导到给定的操作,例如省略或当代码在同一块中有重复声明时遇到一个情况时,插入了代码段。
no。当您有重复的声明时,唯一发生的事情是编译器错误。它总是不构想的。而且由于预处理器没有变量的知识,因此您也不能使用它。
不,没有办法。即使存在,使用它也会走向疯狂的道路。
如果您知道符号的声明在某些定义常数上是有条件的,请在该常数上使用#ifdef
来决定该怎么做。
如果您不知道符号的声明是有条件的,那么您真的不应该弄乱该符号,因为显然它是项目的外部。
相关文章:
- 是什么原因导致它无法编译?它是声明签名还是在函数本身的实现中
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 模板方法访问正向声明的类仅在没有此指针的情况下无法编译
- 使用直接大括号初始化时,C++ 编译错误"声明末尾的预期";"
- 即使不包含其标头,如何成功向前声明的类编译?
- 如何制作 cmakelists.txt编译使用在其他地方声明和实现的函数和类的 CPP
- C++ 在编译过程中 strtok 函数 Eclipse 说没有在范围内声明?
- Lamda 仅在声明为"自动"时编译,而不是在声明为'bool'时编译
- 由于值返回函数中的错误,程序无法编译.它说未声明的标识符
- C++ SPDLOG 编译错误:变量或字段"set_error_handler"声明为无效
- 在 mingw64- 变量下的窗口中编译 openvpn3 时出错,未在范围内声明
- 尝试编译GoogleTest,但出现以下错误:尚未声明'::OpenThread'
- 如何实现声明功能-C 11,编译时间
- 可变参数模板仅在正向声明时编译
- std::d eclare_if 或其他在编译时丢弃成员声明的假设方法
- 编译错误 在 C++ 上,Calcarea 未在此范围内声明
- 试图过渡到GTK3(针对GTK -3.0库编译)时,在此范围内未声明GTK_Object
- 如何为 std::array 声明全局编译时常量?
- 我的Qt程序可以编译,但是当我在声明中使用ifstream时崩溃
- 代码块编译错误.Cin 未在此范围内声明