C++ Primer Plus Chapter9

Chapter9 内存模型和名称空间

五种变量存储方式

存储描述 持续性 作用域 连接性 如何声明
自动 自动 代码块 无 在代码块中
寄存器 自动 代码块 无 在代码块中,使用关键字 register
静态,无连接性 静态 代码块 无 在代码块中,使用关键字 static
静态,外部链接性 静态 文件 外部 不在任何函数内
静态,内部链接性 静态 文件 内部 不在任何函数内,使用关键字 static

单定义规则

为了解决使用外部变量时也需要声明,同时不违反C++的”单定义规则”。C++提供了两种变量声明:

  1. 定义声明,它给变量分配存储空间
  2. 引用声明,它不给变量分配存储空间,使用关键字 extern ,且不进行初始化

名称空间

特点

  1. 名称空间可以是全局的,也可以位于另一个名称空间,但不能位于代码块中。
  2. 任何名称空间中的名称都不会与其他名称空间中的名称发生冲突。
  3. 名称空间是开放的,可以把名称加入到已有的名称空间中。

参考书目 : C++ Primer Plus 第6版