#define 和 const 的区别

📅 2026/7/24 19:21:35 👁️ 阅读次数 📝 编程学习
#define 和 const 的区别

#define 和 const 的区别

#defineconst都可以用来表示常量,但机制有所不同。

1. 本质不同

  • #define是预处理宏,在编译前做文本替换

  • const是 C++ 语言里的常量,有类型,受编译器语义检查

2. 是否有类型

  • #define没有类型信息

  • const有明确类型

3. 作用域不同

  • #define通过从定义处开始,到文件结束都有效,除非遇到#undef

  • const遵守 C++ 作用域规则,比如块作用域、类作用域、命名空间作用域

4. 调试和可读性

  • #define只是替换,调试时不直观

  • const是真实变量/常量,调试器可读

5. 是否占用存储

  • #define只是替换,不是对象

  • const是语言级常量,是否分配存储与具体场景有关