#define 和 const 的区别
#define 和 const 的区别
#define和const都可以用来表示常量,但机制有所不同。
1. 本质不同
#define是预处理宏,在编译前做文本替换const是 C++ 语言里的常量,有类型,受编译器语义检查
2. 是否有类型
#define没有类型信息const有明确类型
3. 作用域不同
#define通过从定义处开始,到文件结束都有效,除非遇到#undefconst遵守 C++ 作用域规则,比如块作用域、类作用域、命名空间作用域
4. 调试和可读性
#define只是替换,调试时不直观const是真实变量/常量,调试器可读
5. 是否占用存储
#define只是替换,不是对象const是语言级常量,是否分配存储与具体场景有关
