再谈编译 ---《c++ primer》

转载 2013年12月05日 11:21:16
编译器的部分工作是寻找程序代码中的错误。编译器不能查出程序的意义是否正确, 但它可以查出程序形式上的错误。下面是编译器能查出的最普遍的一些错误。 
 1. 语法错误。程序员犯了 C++ 语言中的语法错误。下面代码段说明
常见的语法错误;每个注释描述下一行的错误。 
// error: missing ')' in parameter 
list for main 
int main ( { 
// error: used colon, not a semicolon after endl 
std::cout << "Read each file." << std::endl: 
// error: missing quotes around 
string literal 
std::cout << Update master. << std::endl; 
// ok: no errors on this line 
std::cout << "Write new master." <<std::endl; 
// error: missing ';' on return 
statement 
return 0 

2. 类型错误。C++ 中每个数据项都有其相关联的类型。例如,值 10 是一个整数。用双引号标注起来的单词“hello”是字符串字面
值。类型错误的一个实例是传递了字符串字面值给应该得到整型参数的函数。 
3. 声明错误。C++ 程序中使用的每个名字必须在使用之前声明。没有声明名字通常会导致错误信息。最常见的两种声明错误,是从标准库中访问名字时忘记使用“std::”,以及由于疏忽而拼错标识符名: 
#include <iostream> 
int main() 

int v1, v2; 
std::cin >> v >> v2; // error: uses " v "not" v1" 
// cout not defined, should be std::cout 
35
cout << v1 + v2 << std::endl; 
return 0; 

错误信息包含行号和编译器对我们所犯错误的简要描述。按错误报告的顺序改正错误是个好习惯,通常一个错误可能会产生一连串的影响,并导致编译器报告比实际多得多的错误。最好在每次修改后或最多改正了一些显而易见的错误后,就重新编译代码。这个循环就是众所周知的编辑—编译—调试。 

相关文章推荐

C++ Primer 学习笔记_32_STL实践与分析(6) --再谈string类型(下)

 STL实践与分析 --再谈string类型(下) 四、string类型的查找操作     string类型提供了6种查找函数,每种函数以不同形式的find命名。这些操...

C++ Primer 学习笔记_31_STL实践与分析(5) --再谈string类型(上)

 STL实践与分析 --再谈string类型(上) 引: 复习3.2节介绍的string类型: 曾经介绍过的string操作 ...

C++ Primer Plus(再谈重载-一个矢量类)

跟着书敲了一个矢量类,记录如下: Vector要实现矢量的基本运算,最重要的是为后面实现Drunkard Walk problem打下基础,从这个简单的例子中体会一些OOP思想的运用。//vect....

C++ primer(九)再谈容器之顺序容器

1.顺序容器的类型 顺序容器有: vector 支持快速随机访问 list 支持快速插入、删除 deque 双端队列 为了适应基础的容器类型,又定义了三种容器...

c++primer plus第十二章-再谈new定位运算符和返回对象const的引用

c++primer plus第十二章-再谈new运算符

C++快速入门 (七) 再谈指针和函数

一 特殊的指针 (1). NULL指针 因为C++继承于C, 所以C++也存在 NULL指针,但C++ 中的 NULL指针 等于整数 0 (用宏定义)。 #ifdef__...
  • meiwm
  • meiwm
  • 2013年01月09日 13:51
  • 340

再谈:为什么开源C/C++开源框架极昂贵?

今天读了一篇文章:《腾讯前员工创业笔记:那些跟钱有关的事儿》(http://tech.163.com/14/0515/08/9S9975C5000915BF.html),摘录两段:    刚开工的时候...
  • dellfox
  • dellfox
  • 2014年05月15日 11:42
  • 2437

实战c++中的vector系列--再谈vector的insert()方法(都是make_move_iterator惹的祸)

之前说过了关于vector的insert()方法,把vector B的元素插入到vector A中,vector A中的结果我们可想而知,但是vector B中的元素还会如何?看看之前写过的程序:...

再谈C++中的has-a关系(通过复合塑模出has-a、明智而审慎地使用Private继承)

文章《浅析C++中的is-a和has-a关系(公有继承、包含、私有继承)》讲诉了is-a与has-a的区别,并提到了实现has-a关系的两种方法:包含和私有继承。文章《再谈C++中的is-a关系(确定...

再谈c++类型转换

今天在研究字符编码的时候偶然想到一个问题,在ansi编码中,一个中文字符是用两个字节表示的,但是一个char是一个字节,那么如果我将一个中文字符赋值给一个char变量的话,打印输出会发生什么情况呢? ...
  • Yelbosh
  • Yelbosh
  • 2012年04月23日 11:28
  • 369
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:再谈编译 ---《c++ primer》
举报原因:
原因补充:

(最多只允许输入30个字)