Advertisement

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)

还没有任何评论哟~