#ifdef和未声明的标识符
#ifdef and undeclared identifier
我在Visual Studio 2017中开发了一个项目。以下代码:
#ifdef MY_DEFINE
#else
std::string txt = "abc";
#endif
output += txt;
没有编译-我得到一个错误:'txt': undeclared identifier
MY_DEFINE未定义,而else分支已编译。该代码是更大项目的一部分。我无法在默认的简单控制台应用程序中重现编译错误。这是否意味着该项目可能存在导致编译错误的某些设置?
您可以使用#error
指令检查实际发生了什么:
#ifdef MY_DEFINE
#error It was defined
#else
#error It was NOT defined
std::string txt = "abc";
#endif
output += txt;
可能MY_DEFINE
实际上是在您包含的其他头文件中定义的。通常,在Visual Studio中确定这一点的最简单方法就是将鼠标光标悬停在标识符上,然后查看它的内容,或者ctrl+单击以转到定义。但有时IDE中的这些提示与您编译的内容并不完全匹配。
相关文章:
- #ifdef和未声明的标识符
- 未声明的标识符编译暗黑破坏神 2 程序"muleview"
- 在顶点着色器中使用 OpenGl 的未声明标识符,我在顶点着色器中绘制三角形时遇到问题
- Google protobuf 时间戳未声明标识符,在 Windows 上具有C++
- 使用未声明的标识符"sqrt"?
- 对类 (C++) 中的私有变量使用未声明的标识符
- 我的代码中有错误,未声明的标识符
- 未定义的标识符/未声明
- 错误:在 C++ 'std'使用未声明的标识符
- 在编译器之前检测未声明的标识符
- 使用未声明的标识符'temp'
- 使用未声明的标识符"yylex"和"yyin"?
- 使用"class"关键字,后跟未声明的标识符
- 未声明的标识符错误,但变量定义正确 (?)
- C2065 'cout':未声明的标识符
- C++模板模板参数中未声明的标识符
- 错误:在 C++ 目标 c 混合'self'使用未声明的标识符
- C++循环依赖关系,未声明的标识符
- 我的函数调用 (C++) 中的未声明标识符
- 未找到标识符和未声明的标识符