点击链接学习更多C++ 技巧 :C++ 学习路线
C++ 程序的编译分为:预处理、编译、链接 三个步骤,下面依次进行介绍
预处理:替换 #define
相信大家比较容易看懂下面的代码,已知半径 r 计算圆的面积
#define PI 3.141592653
// 已知半径 r 计算圆的面积
float area(float r){
return r * r * PI;
}
预处理器会替换所有的宏定义,并删除所有的注释,上面代码中的 PI 都被替换为了 3.141592653,交给编译器的将是下面这样的代码
float area(float r){
return r * r * 3.141592653;
}
此外,预处理器还可以进行简单的逻辑判断,比如在头文件中常见的宏定义,这样可以避免头文件被反复调用,从而导致头文件中的变脸被重复声明
#ifndef AREA_H
#define AREA_H
// do something...
#endif
编译:生成.o文件
由编译器生成机器码,在 Linux 系统上为 .o 文件
链接:链接.a/.so文件
链接使用到的代码库,也就是提前编译好的二进制文件,.a是静态库,.so是动态库
点击链接学习更多C++ 技巧 :C++ 学习路线