您的位置:首页 > 其它

#define与const的区别

2017-10-16 23:43 246 查看
#define MAX 1与const int MAX = 10的区别

1)编译器对二者的处理方式不同

define 是在预编译处理阶段直接进行替换,而const常量则是在编译运行阶段时才会使用。

2)define是宏定义没有类型,而const则有具体的类型;define不进行类型安全检查但const 则要进行类型检查。

3)define不分配内存,他给出的是一个立即数。而const则在静态存储区存储区中给const常量分配一个位置,从一个程序的开始到结束该常量只有一份不进行拷贝。

4)在编译时,编译器通常不会为const常量分配内存,而是将他们保存在符号表中,使其成为一个编译期间的常量,没有存储和读内存的操作;宏替换只是做一个简单的替换,不做任何的计算和表达式求值。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: