【每天一C之十】const与define区别

【每日一C之十】const与define区别

每日一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 !