《C++宝典》02程序的组成及开发过程

一般4个步骤:编辑、编译、链接、运行。

  1. 编辑:将程序的设计思想转换成代码;
  2. 编译:将代码转换成机器码;
  3. 链接:将程序编译后的各部分机器码和C++库代码等链接成一个可执行文件;
  4. 运行:将可执行程序跑起来。

示例程序:

#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中形式:

  • 可以立即执行的机器语言代码
  • 待装配的机器语言模块,由链接程序将其和其他模块链接起来,转换成能执行的机器语言代码
  • 汇编语言代码,必须讲过汇编程序汇编后,才能成为可执行的机器语言代码
posted @ 2013-02-24 20:30  Tup  阅读(247)  评论(0)    收藏  举报