【每天一C之十】const与define区别
【每日一C之十】const与define区别
Have a nice day !
每日一C之const与define区别
每天拾一个C语言贝壳,厚积薄发,积跬步以致千里。
今日贝壳:不得不提,设立const关键字的目的:取代define,消除define缺点的同时继承其优点。
定义常量而言的区别:
1.作用层次不同:
define作用在文本层次,在预处理阶段单纯在文本上的替换。
const 作用在语法层次,在编译阶段处理const修饰的变量。
2.类型检查:
作用层次的差异决定:define不可能有类型检查,事实上几乎没有任何检查
const则有类型检查,这是const安全性的表现
3.存储方式:
define是简单的替换,通常不存在分配内存空间的问题。
const:局部变量运行时分配在栈区,全局变量则编译时分配在静态区。
4.作用域:
const局部常量作用域仅在函数内。
define常量的作用域,为定义点到函数结束。
Have a nice day !