编译器的一部分工作是寻找程序文本中的错误。编译器没有能力检查一个程序是否按照作者的意图工作,但可以检查形式上的错误。以下列出了一些常见的编译器可以检查出来的错误。
- 语法错误(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)周期;
原文链接: https://www.cnblogs.com/Real-m/p/13203649.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/199656
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!