问几个c++调试时的错误提示
1.error c2447:missing function header(old-style formal list2.error c2181:illegal else without matching if
3.error c2057: expected constant expression
4.error c2065:'_UNKNOWN_RESOURCE_ID_':undeclared identifier
2.error c2181:illegal else without matching if
3.error c2057: expected constant expression
4.error c2065:'_UNKNOWN_RESOURCE_ID_':undeclared identifier
答案:1.编译器错误 C2447
错误消息
“{”: 缺少函数标题(是否是老式的形式表?)
在全局范围内出现左大括号,但没有相应的函数头。
此错误可能由旧式 C 语言格式列表引起。
下面的示例生成 C2447:
// C2447.cpp
int c;
{} // C2447
2. 编译器错误 C2181
错误消息
没有匹配 if 的非法 else
每个 else 都必须具有一个与之相匹配的 if。
下面的示例生成 C2181:
// C2181.cpp
int main() {
int i = 0;
else // C2181
i = 1;
}
可能的解决方案:
// C2181b.cpp
int main() {
int i = 0;
if(i)
i = 0;
else
i = 1;
}
3.编译器错误 C2057
错误消息
应输入常数表达式
上下文要求常数表达式,即其值在编译时已知的表达式。
示例
下面的示例生成 C2057:
// C2057.cpp
int i;
int b[i]; // C2057
int main() {
const int i = 8;
int b[i];
}
C 对常数表达式有限制性更强的规则。下面的示例生成 C2057:
// C2057b.c
#define ArraySize1 10
int main() {
const int ArraySize2 = 10;
int h[ArraySize2]; // C2057
int h[ArraySize1]; // OK
}
4.编译器错误 C2065
错误消息
“identifier”: 未声明的标识符
在可使用变量的类型前必须在声明中指定它。在可以使用函数前必须在声明或原型中指定该函数使用的参数。
可能的原因:
您正在用 C 运行库的调试版本进行编译,在 for 循环中声明标准 C++ 库迭代器变量,然后尝试在 for 循环范围外使用该迭代器变量。 用 C 运行库的调试版本编译标准 C++ 库代码暗指使用 /Zc:forScope。 有关更多信息,请参见调试迭代器支持。
可能正在调用当前不受生成环境支持的 SDK 头文件中的函数。
省略必要的包含文件,尤其是在定义 VC_EXTRALEAN、WIN32_LEAN_AND_MEAN 或 WIN32_EXTRA_LEAN 时。这些符号从 windows.h 和 afxv_w32.h 中排除了一些头文件以加快编译。(在 windows.h 和 afxv_w32.h 中查找排除的头文件的最新说明。)
标识符名拼写错误。
标识符使用了错误的大小写字母。
字符串常数的后面缺少右引号。
命名空间范围不正确。例如,若要解析 ANSI C++ 标准库函数和运算符,则必须用 using 指令指定 std 命名空间。下面的示例未能编译,因为 using 指令被注释掉,并且在 std 命名空间中定义了 cout:可能是代码有为错误.照着错误信息改改就行了.有未定的变量和格式错误。一项一项的改阿把原文弄上来 我帮你改改吧