概述
编译器的一部分工作是寻找程序文本中的错误。编译器没有能力检查一个程序是否
按照其作者的意图工作,但可以检查形式(form)上的错误。下面列出了一些最常见的
编译器可以检查出的错误。
语法错误(syntax error):程序员犯了C++语言文法上的错误。下面程序展示了一些常
见的语法错误;每条注释描述了下一行中语句存在的错误:
// 错误:main 的参数列表漏掉了
int main ( {
// 错误:endl 后使用了冒号而非分号
std::cout << "Read each file." << std::endl:
// 错误:字符串字面常量的两侧漏掉了引号
std::cout << Update master. << std::endl;
// 错误:漏掉了第二个输出运算符
std::cout << "Write new master." std::endl;
// 错误:return 语句漏掉了分号
return 0
}
类型错误(type error):C++中每个数据项都有其类型。例如,10 的类型是int(或者
更通俗地说,“10 是一个int 型数据”)。单词"hello",包括两侧的双引号标记,则是一
个字符串字面值常量。一个类型错误的例子是,向一个期望参数为int 的函数传递了
一个字符串字面值常量。
声明错误(declaration error):C++程序中的每个名字都要先声明后使用。名字声明失败
通常会导致一条错误信息。两种常见的声明错误是:对来自标准库的名字忘记使用
std::、标识符名字拼写错误:
#include <iostream>
int main()
{
int v1 = 0, v2 = 0;
std::cin >> v >> v2; // 错误:使用了"v"而非"v1"
// 错误:cout 未定义;应该是std::cout
cout << v1 + v2 << std::endl;
return 0;
}
错误信息通常包含一个行号和一条简短描述,描述了编译器认为的我们所犯的错
误。按照报告的顺序来逐个修正错误,是一种好习惯。因为一个单个错误常常会具有传
递效应,导致编译器在其后报告比实际数量多得多的错误信息。另一个好习惯是在每修
正一个错误后就立即重新编译代码,或者最多是修正了一小部分明显的错误后就重新编
译。这就是所谓的“编辑-编译-调试”(edit-compile-debug)周期。
最后
以上就是美丽手套为你收集整理的编译出错的可能情况的全部内容,希望文章能够帮你解决编译出错的可能情况所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复