- 首先,#define 是在预处理过程中起作用,const在编译运行时起作用;
- #define AGE 18 对于这个预处理指令,在预处理阶段,也许所有的 AGE 都被替换为18 ,就是说编译过程中可能根本就看不到AGE这个名称。当使用AGE的语句出现编译错误时,可能会带来困扰,因为所有的错误都直接关联到18这个常量,调试时在追踪这个常量上浪费时间;
- #define只进行字符串替换,const还会进行类型检查,可以避免低级错误,比如使用错误的类型;
- 从内存占用上看,#define有多少地方用就替换多少次,而const定义的只读变量只备份一次。
#define、const区别
最新推荐文章于 2023-02-23 09:51:01 发布