C++学习4

链接:每个源文件被称为一个翻译单元,在某一个翻译单元里定义的东西在另外一个翻译单元里使用就是链接在发挥作用。

凡是有名字的东西必然属于一种链接()

有内链接(internal)、外链接(external)、无链接(none),默认外链接。

外链接:普通函数、变量、类、模板、命名空间都有外链接。

内链接:任何函数以外定义的静态变量

无链接:函数里定义的变量

存储类:每个变量都有一个存储类,决定变量的:存储位置、存储方式、作用域。

auto变量:默认的存储类是auto(自动变量),自动变量存储在栈,在块语句或函数末尾的右括号结束是系统收回。

static变量:存储在静态存储区,生命周期为从申请到程序退出。

extern变量:把一个翻译单元里的变量声明为另一个本单元里一个同名的全局变量。不为extern变量分配内存,

register变量:编译器把一个变量存储在CPU寄存器里,作用域和自动变量一样。

编译器建立程序:

1.执行预处理命令(#include);

2.把.cpp文件编译成.o文件(为变量分配内存,错误检查);

3.把.o文件链接成一个可执行文件()。

原文地址:https://www.cnblogs.com/OrdinaryMiracle/p/4357828.html