1.编辑:也就是编写C/C++程序。
2.预处理:相当于根据预处理指令组装新的C/C++程序。经过预处理,会产生一个没有宏定义,没有条件编译指令,没有特殊符号的输出文件,这个文件的含义同原本的文件无异,只是内容上有所不同。
3.编译:将预处理完的文件进行一系列词法分析、语法分析、语义分析及优化后,产生相应的汇编代码文件。
4.链接:通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。 链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。在此过程中会发现被调用的函数未被定义。
auto 变量类型推演,
register 建议编译器将该变量放入cpu,
static 静态变量,
extern 声明变量,常用于多文件需要使用同一变量时
通常情况下,变量的值是存取于内存之中,若使用CPU的寄存器,将局部变量值直接放于寄存器中,其存取速度远远高于对内存的存取速度,因此,使用cpu的寄存器可提高执行速率,为了提高程序的运行速率可使用 register型 定义(整形或指针型)
C++ STL 的实现:
1.vector 底层数据结构为数组 ,支持快速随机访问
2.list 底层数据结构为双向链表ÿ