当前位置:编程学习 > C/C++ >>

问几个c++调试时的错误提示

1.error c2447:missing function header(old-style formal list 

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:



可能是代码有为错误.照着错误信息改改就行了.
有未定的变量和格式错误。一项一项的改阿

把原文弄上来 我帮你改改吧

上一个:c++ 高校人员信息管理系统 课程设计
下一个:电话簿管理程序设计(一定用c++)

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,