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)周期;

 

posted @ 2020-06-28 16:35  Real丶  阅读(1563)  评论(0编辑  收藏  举报