网站主题模板制作,百度推广建设网站是不是合发,网络推广网站制作,wordpress设置网站背景图片一:区别
#xff08;1#xff09;就起作用的阶段而言#xff1a; #define是在编译的预处理阶段起作用#xff0c;而const是在 编译、运行的时候起作用。 #xff08;2#xff09;就起作用的方式而言#xff1a; #define只是简单的字符串替换#xff0c;没有类型检查。…一:区别
1就起作用的阶段而言 #define是在编译的预处理阶段起作用而const是在 编译、运行的时候起作用。 2就起作用的方式而言 #define只是简单的字符串替换没有类型检查。而const有对应的数据类型是要进行判断的可以避免一些低级的错误。 3就存储方式而言#define只是进行展开有多少地方使用就替换多少次它定义的宏常量在内存中有若干个备份const定义的只读变量在程序运行过程中只有一份备份。 4从代码调试的方便程度而言 const常量可以进行调试的define是不能进行调试的因为在预编译阶段就已经替换掉了。
二const优点
1const常量有数据类型而宏常量没有数据类型。编译器可以对前者进行类型安全检查。而对后者只进行字符替换没有类型安全检查并且在字符替换可能会产生意料不到的错误。 2有些集成化的调试工具可以对const常量进行调试但是不能对宏常量进行调试。 3const可节省空间避免不必要的内存分配提高效率