#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常量分配内存,而是将他们保存在符号表中,使其成为一个编译期间的常量,没有存储和读内存的操作;宏替换只是做一个简单的替换,不做任何的计算和表达式求值。
1)编译器对二者的处理方式不同
define 是在预编译处理阶段直接进行替换,而const常量则是在编译运行阶段时才会使用。
2)define是宏定义没有类型,而const则有具体的类型;define不进行类型安全检查但const 则要进行类型检查。
3)define不分配内存,他给出的是一个立即数。而const则在静态存储区存储区中给const常量分配一个位置,从一个程序的开始到结束该常量只有一份不进行拷贝。
4)在编译时,编译器通常不会为const常量分配内存,而是将他们保存在符号表中,使其成为一个编译期间的常量,没有存储和读内存的操作;宏替换只是做一个简单的替换,不做任何的计算和表达式求值。
相关文章推荐
- C++带const、static和#define关键字的变量定义的区别
- #define,const,typedef三者联系与区别 及 static和const的解释
- #define和const的区别
- C++中 #define与const、inline、typedef的区别
- C++中const与#define的区别
- const与#define的区别
- const 和 #define区别;
- #define、const、typedef的区别!!!
- c++中的const和#define区别
- const,#define等的区别
- const和#define的区别
- const 与 #define 的区别
- #define与const的区别
- C语言中 关于const和#define的区别心得
- const 和 #define区别
- const与#define的区别
- #define和const的区别
- const和#define的区别
- const 和 #define区别
- const 与 #define的区别