编译器检查出的错误
摘要:编译器生成的错误信息、常见错误
一、编译器生成的错误信息
1. 组成情况
- 错误出现的文件及代码行
- 一条简短描述(编译器认为我们所犯的错误)
2. 错误性质
- 编译器的一部分工作是寻找程序文本中的错误。
- 它没有能力检查一个程序是否按照其作者的意图工作,但可以检查形式上的错误。
二、常见的编译器可以检查出的错误
1. 语法错误(syntax error)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 3 //错误:main的参数列表漏掉了 4 int main( 5 { 6 7 //错误:endl后使用了冒号而非分号 8 std::cout << "Read each file." << std::endl: 9 10 //错误:字符串字面常量的两侧漏掉了引号 11 std::cout << Read each file. << std::endl; 12 13 //错误:漏掉了第二个输出运算符 14 std::cout << "Read each file." std::endl; 15 16 //错误:return 语句漏掉了分号 17 return 0 18 }
2. 类型错误(type error)
- C++每个数据项都有其类型。如10的类型是int,"hello"则是一个字符串字面值常量。
- 一个type error的错误例子就是:向一个期望参数为int的函数传递了一个字符串字面值常量。
3. 声明错误(declaration error)
- C++程序中的每个名字都要先声明后使用。名字声明失败通常会导致一条错误信息。
- 两种常见的声明错误是:①对来自标准库的名字忘记使用std:: ②标识符名字拼写错误
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #include <iostream> 2 int main() 3 { 4 int v1 = 0, v2 = 0; 5 6 //错误:使用了"v"而非"v1" 7 std::cin >> v >> v2; 8 9 //错误:cout未定义,应该为std::cout 10 cout << v1 + v2 << std::endl; 11 return 0; 12 }
【花絮】
编译器报错截图: