const和define的区别

 

#definespa

const调试

起做用的阶段内存

在编译的预处理阶段起做用ci

编译、运行的时候起做用编译

起做用的方式table

是字符替换,没有类型检查效率

有类型检查变量

存储方式数据类型

只是进行展开,有多少次使用就替换多少次,它定义的宏常量在内存中有若干个备份程序

定义的只读变量在程序运行过程当中只有一份备份

代码调试的方便程度

不能调试,由于在预编译阶段就已经替换掉了

能够进行调试

存储位置

代码段

只读数据段(全局变量);栈(局部变量)

  没有数据类型

有数据类型

能够节省空间,避免没必要要的内存分配,提升效率