C++ Primer知识系列四:内存模型和名称空间
1、头文件
头文件包含:函数原型;使用#define或const定义的符号常量;结构声明;类声明;模板声明;内联函数
//避免多次包含同意头文件
#ifndef COORDIN_H_EXAM
#define COORDIN_H_EXAM
...
#endif
2、存储持续性、作用域和链接性
链接性:名称如何在不同单元间共享。
- 自动存储持续性:函数内定义的变量(包括参数);作用域:局部代码块;无链接性(栈)
- 静态存储持续性:函数外定义的变量和static关键字定义的变量
- 线程存储持续性(C++11):关键字thread local声明(生命周期和线程一样长)
- 动态存储持续性:关键字new声明(堆)
静态存储持续性变量的3种链接性:
- 外部链接性(可在其他文件中访问):代码块外部声明(无static)
- 内部链接性(只能在当前文件中访问):代码块外部用static声明
- 无链接性(只能在当前代码块中访问):代码块内用static声明
3、名称空间
namespace exam{
//声明变量,函数原型,结构类声明
}//不能位于代码块中
using namespace exam;
using exam::...;
//可嵌套
namespace t1{
using t2;
...
}