C++中宏定义#define和常量const的区别

分类:知识百科 日期: 点击:0

C++中,#define和const都可以用来定义常量。但是它们有着本质的区别:

#define PI 3.14
const double PI = 3.14;

#define是C/C++中的预处理指令,在编译前会被编译器处理,也就是说在编译时宏定义就已经被替换掉了,不存在类型检查,而const是在编译时才会被检查,编译器会对它进行类型检查。

#define定义的宏只是一个简单的文本替换,它只是单纯的把宏定义的名字替换成宏定义的内容,而const定义的常量则是真正的变量,它会在内存中开辟一段空间存储变量的值,可以被程序引用。

#define定义的宏没有作用域的概念,它在整个程序中都有效,而const定义的常量则有作用域的概念,它只在定义它的作用域内有效,出了它的作用域就无效了。

#define定义的宏更加灵活,而const定义的常量更加安全,使用时可以根据实际情况进行选择。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。