Chapter9 内存模型和名称空间
五种变量存储方式
存储描述 | 持续性 | 作用域 | 连接性 | 如何声明 |
---|---|---|---|---|
自动 | 自动 | 代码块 | 无 | 在代码块中 |
寄存器 | 自动 | 代码块 | 无 | 在代码块中,使用关键字 register |
静态,无连接性 | 静态 | 代码块 | 无 | 在代码块中,使用关键字 static |
静态,外部链接性 | 静态 | 文件 | 外部 | 不在任何函数内 |
静态,内部链接性 | 静态 | 文件 | 内部 | 不在任何函数内,使用关键字 static |
单定义规则
为了解决使用外部变量时也需要声明,同时不违反C++的”单定义规则”。C++提供了两种变量声明:
- 定义声明,它给变量分配存储空间
- 引用声明,它不给变量分配存储空间,使用关键字 extern ,且不进行初始化
名称空间
特点
- 名称空间可以是全局的,也可以位于另一个名称空间,但不能位于代码块中。
- 任何名称空间中的名称都不会与其他名称空间中的名称发生冲突。
- 名称空间是开放的,可以把名称加入到已有的名称空间中。
参考书目 : C++ Primer Plus 第6版