C++ Primer Plus Chapter9

Chapter9 内存模型和名称空间

五种变量存储方式

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

单定义规则

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

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

名称空间

特点

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

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