1. 作用时机
#define 宏:在预处理阶段(编译前)展开,只做文本替换,没有类型检查。const 常量:在编译阶段生效,有类型,编译器会进行类型检查(安全)。
2. 作用域
#define 宏:作用域从定义位置到文件结尾,或者#undef的位置,跨多个文件时需要头文件。const 常量:遵循C/C++的作用域规则(如局部、全局、类成员等)。
3. 调试
#define 宏:调试时看不到具体变量,只有替换结果。const 常量:调试时可以看到变量名和值。
4. 内存占用
#define 宏:只是替换,不占用内存。const 常量:可能会分配内存(但编译器有优化,尤其是用于数组大小等情况下)。
379

被折叠的 条评论
为什么被折叠?



