3、C++编译时常见的几种错误类型
编译器的一部分工作是寻找程序文本中的错误。编译器没有能力检查一个程序是否按照作者的意图工作,但可以检查形式上的错误。以下列出了一些常见的编译器可以检查出来的错误。
- 语法错误(syntax error):程序员犯了语言文法上的错误。以下是一些常见的语法错误:
//错误:main的参数列表漏掉了) int main( { //错误:endl后使用了冒号而不是分号 cout<<"hello C++"<<endl: //错误:字符串漏掉了引号 cout << hello C++ << endl; //错误:漏掉输出运算符 cout << "hello C++"endl; //错误:return语句漏掉了分号 return 0 }
- 类型错误(type error):C++中每一个数据项都有其类型,比如10 是一个int型数据,带有 双引号标记如 “hello”就是一个string(字符串)类型的数据。如果向一个 期望参数为int的函数传递了一个string类型的常量,编译就会报错;
- 声明错误(declaration error):C++程序中每一个名字都要先声明后使用。名字声明失败通常会导致一条错误信息,以下是一个常见的声明错误的例子:
int main() { int v1 = 0, v2 = 0; cin >> v >> v2; //使用的“v”而非“v1” cout << v1 + v2 << endl; return 0; }
错误信息通常包含行号和一条简短描述,描述了编译器认为的我们所犯的错误。按照报告逐个修改错误是一个好习惯,因为单个错误通常具有传递效应,导致编辑器在后面报告比实际数量多的错误;另外,每修正一个错误就编译一遍,或者修正了一小部分明显的错误之后重新编译,这就是所谓的“编辑-编译-调试”(edit-complit-debug)周期;
一个初识C++的小白