【方法一】: 在某个公用的头文件中直接在某个名字空间中或者全局名字空间中定 义符号常量并初始化(有无static)无所谓,例如:
// CommonDef.h
const int MAX_LENGTH=1024;
然后每一个使用它的编译单元#include改头文件即可
【方法二】: 在某个公用头文件中并且在某个名字空间中或者全局名字空间中将符号常量声明为extern的,例如:
//CommonDef.h
extern const int MAX_LENGTH;
并且在某个源文件中定义一次并初始化:
const int MAX_LENGTH=1024;
然后每一个使用它的编译单元#include上述头文件即可
两种方法的比较:
优点:
方法一: 方法二:
维护方便 (1)节约存储,每一个编译单元访问都是这个唯一的定义。
(2)修改初值后只需重新编译定义所在编译单元即可,影响面很小。
缺点:
方法一: 方法二:
(1)如果修改常量初值,则将影响多个 如果要改变初值,要改变源文件
编译单元,所有受影响的编译单元
必须重新编译。
(2)每一个符号常量在每一个包含了它们的
编译单元内都存在一份独立的拷贝内容,
每个编译单元访问的就是各自的拷贝内容,
因此浪费存储空间