define能不能取代const

最后都变了- 提交于 2020-04-04 17:49:50

首先说一下define和const的区别:

1.const定义的常量有数据类型,#define宏定义的常量没有

2.define不仅是定义常量,还可以定义带参数的宏,做到一定程度的泛型

3.const在堆栈分配了空间,而define只是把具体数值直接传递到目标变量罢了

4.const是在编译时候处理,define是应用于预处理

5. 在程序语句中使用的常量的地方, 最好是使用const定义,在这方面来说, const只有优势,没有劣势.如果要说const劣势的地方,那就是它不能做define在预处理的时候做的事情.其实,这并非它的劣势,而只是不是它所要担负的工作罢了.

6.宏可以重定义,const不能

7.#define的优势:简单。因为预处理就可以解决掉#define,不必让编译器来处理这个。从应用上讲,#define也是不可或缺的。因为它可以让写代码的人体会到方便性。

8.const引入数据类型后,可以帮助编译器识别数据的“属性”,这对编译器是非常重要的

https://bbs.csdn.net/topics/310170662

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!