const和#define的区别

张开发
2026/4/15 0:09:28 15 分钟阅读

分享文章

const和#define的区别
对比项const常量修饰符#define宏定义本质变量有类型、有地址的只读变量简单文本替换预处理阶段替换无类型处理阶段编译阶段编译器处理预处理阶段预处理器处理数据类型有明确类型int/char/float等无类型仅做字符串替换内存分配占用内存空间存储在数据段不占用内存替换后直接嵌入代码作用域遵循 C 语言作用域规则局部仅函数内全局整个文件默认作用域为整个工程可用#undef取消类型检查有严格类型安全检查无类型检查易引发隐式错误能否调试可以被调试器识别、查看仅为替换文本调试器无法识别能否修饰指针 / 数组支持可限定指针、数组等为只读不支持仅能做简单替换重复定义编译器会报错重复定义重复定义会覆盖无报错使用示例const int a 10;#define PI 3.14

更多文章