C++内部连接与外部连接
2012-09-20 10:40 kalvin 阅读(253) 评论(0) 收藏 举报在学习C++const关键词作用时候,涉及到一些内部连接和外部连接的概念,不是很理解。
首先在理解内部连接和外部连接概念之前先理解几个概念。
First 编译单元
当一个.C或者.CPP文件在编译时,预处理器首先递归包含头文件,形成一个含有所有必要信息的单个源文件,这个源文件就是一个编译单元。这个编译单元会被编译成为一个与CPP文件同名的目标文件(.o或.obj)。连接程序把不同编译单元中产生的符号联系起来,构成一个可执行程序。
Second 自由函数
一个函数如果是自由函数的话,那么其就不是类的成员函数和友元函数,可以说自由函数就是定义在一个非类中且不是不能调用类中数据的函数。
Third 内部连接
如果一个名称对于一个编译单元来说是局部的,并且在连接时不会与其他编译单元中的同样名称相冲突,呢么这个名称有内部连接。(有时将声明也称为一个内部连接)
Fourth 外部连接
在一个多文件程序中,假如一个名称在连接时可以和其他编译单元交互,那么这个名称就有外部连接了。
其实怎么样区别外部连接和内部连接还是很简单的,利用前面所讲的编译单元的概念,我们要知道一个变量(这里将统称为变量,虽有不妥,但只是代言词)是否是外部连接,只要知道其所在的编译单元是否与其他编译单元在这个变量的基础上有交互。
浙公网安备 33010602011771号