《C++宝典》02程序的组成及开发过程
一般4个步骤:编辑、编译、链接、运行。
- 编辑:将程序的设计思想转换成代码;
- 编译:将代码转换成机器码;
- 链接:将程序编译后的各部分机器码和C++库代码等链接成一个可执行文件;
- 运行:将可执行程序跑起来。
示例程序:
#include <iostream> #include <cstdlib> using namespace std; int add(int x,int y) { int z=x+y; return z; } int main(int argc,char** argv) { int a=1+2; cout<<"1+2="<<a<<endl; system("pause"); return 0; }
几个要点:
1. 预处理命令
“#”是一个预处理标志。程序在编译之前,先运行预处理器。预处理器遍历整个源代码,找到有“#”开始的行,并执行其后的预处理命令。include是一条预处理指令,其作用是将后面的文件复制到当前源代码文件中。“<>”代表标准头文件,引号“”则代表自定义的头文件,从当前目录开始寻找。
2. 使用名称空间namespace
所谓名称空间就是指定名称的搜索范围。namespace是包含各种名称(变量、函数、类等的标识符)的域。使用namespace的主要目的是避免名称冲突。随着应用程序规模越来越大,各种变量、函数、类等的标识符也越来越多,添加一个新的标识符很容易与已经存在的标识符冲突。如果使用namespace,则某个标识符就被限制在特定的namespace中,从而减少了发生冲突的可能性。
指定namespace的方法有2种:一种是使用域运算符“::”,如std::cin(std是标准C++名称空间);另一种是using namespace **;
3. 编译器的组成
一般来讲,C++编译器由预处理器、词法分析器、语法分析器、语义分析器、代码优化器以及机器码生成器组成。词法分析器、语法分析器和语法分析器合称编译器前端,代码优化器和机器码分析器合称编译器后端。
目标代码的优化主要包括以下三方面:
- 生成较短的目标代码
- 充分利用计算机中的寄存器,减少目标代码访问reg的次数
- 充分利用计算机指令系统的特点,以提高目标代码的质量
目标代码生成器把语法分析后、优化后的中间代码变换成目标代码。目标代码有3中形式:
- 可以立即执行的机器语言代码
- 待装配的机器语言模块,由链接程序将其和其他模块链接起来,转换成能执行的机器语言代码
- 汇编语言代码,必须讲过汇编程序汇编后,才能成为可执行的机器语言代码

浙公网安备 33010602011771号