首先说一下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
来源:https://www.cnblogs.com/shilipojianshen/p/12632562.html