谁能说一下 #define const和const的区别 呢

#define const是字符串替换没有类型检查;const囿对应的数据类型,是要进行判断 

#define const容易导致错误,比如:

编译器对#define const的处理是在编译的预处理阶段;对const的处理是在编译、运行阶段

发布叻21 篇原创文章 · 获赞 12 · 访问量 1万+

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

define const 主要是定义宏变量,定义之后在该文件中的任何地方可以使用,如果想在和多地方可以同时使用一般采用新建一个专门放宏,的.h 文件然后在想使用的文件里包含该头文件就好了.


const 定义是不可更改 的指针,变量对象等,用该关键字定义后只能访问,不能更改里面的任何东西

C++中的const常量类似于宏定义

这两个程序运行结果都是一样的都是定义一个常量a,注意#define const最后是没有分号下面这两个程序也说明了这一点:

现在a是一个宏定义,我们知道宏萣义凡是变量a所在的地方预处理编译器都进行替换,也就是将a替换为10因此在函数fun1中定义的a在函数fun2是可以使用的也就是说宏定义是沒有作用域检查运行可以通过。

那么如果想将a的作用域限制在函数fun1中可以使用“卸载宏”或者称作“取消”  #undef  来达到目的

注释发现编译时错误的!

C++中的const常量与宏定义不同

const常量是由编译器处理的提供类型检查和作用域检查;

宏定义由预处理器处理单纯的文本替换。

更多精彩资料请关注!


参考资料

 

随机推荐