常变量
1、const变量常类型的变量或对象是不能被更新的
2、便于进行类型检查,编译器遇见const就会知道是一个常量 不允许修改
3、很方便的进行参数的调整和修改 和宏定义一样 一边都变
4、保护被修饰的部分 防止意外的修改 增强程序健壮性
5、节省空间,避免不必要的内存分配 const只是给出对应的内存地址 而不是和宏定义一样给出立即数 所以const定义的常量在程序运行过程中只有一份拷贝
6、编译器通常不为const常量分配存储空间 而是保存在符号表中,这使得他成为一个编译期间的常量 没有存储与读内存的操作 效率更高
枚举
1、枚举不是变量是常量
2、枚举元素是有值的
枚举型是预处理指令#define 的替代
宏定义
编译之前预处理 进行替换
宏名一般大写
可以用#undef终止宏定义的作用域
宏定义不分配内存 变量定义分配内存
宏定义不存在类型问题 参数也是无类型的
一改都改