C++ 中类或结构间的 Linkage 包括 static、dynamic、member 和 friend 关联
发布时间
阅读量:
阅读量
Linkage
- 连接
- 内部连接
- 外部连接
- 归纳
- 文献来源
链接
在 C++ 程序执行之前,编译器与连接器必须完成各自的任务。若希望程序能够正常运行,有必要掌握 C++ 中两个极为关键的概念,即 translation unit (编译单元,简称为 TU) 以及 one definition rule (定义一次规则,以下简称 ODR) 。
所谓 TU 指的是一个 source file (源文件) 及其引用的 header files (头文件) 。而 linkage (链接) 则可以理解为变量或函数是否仅在特定的 TU 内有效。
内部链接
链接可划分为 internal linkage (内部连接) 与 external linkage (外部链接) 两类。所谓内部连接,即当某个变量被定义为内部连接时,其在每一个 TU 中均具有唯一性。只要符合以下条件,对象将采用内部连接的方式进行链接[^1]:
- 常量对象(如
const int*、const double等) - 常量表达式对象(如
constexpr char*) - 类型别名
- 在命名空间作用域中定义的静态对象(如全局
static int age)
若在 a.h 文件中对 `
全部评论 (0)
还没有任何评论哟~
