const和define的区别

mac2024-04-22  4

 

#define

const

起作用的阶段

在编译的预处理阶段起作用

编译、运行的时候起作用

起作用的方式

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

有类型检查

存储方式

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

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

代码调试的方便程度

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

可以进行调试

存储位置

代码段

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

 没有数据类型

有数据类型

可以节省空间,避免不必要的内存分配,提高效率

最新回复(0)