#define与const的存储差别

来源:互联网 发布:思维江硬 知乎 编辑:程序博客网 时间:2024/05/21 18:48

#define A 3 与 const uint8_t A = 3;哪个更好呢?


const 定义的只读变量从汇编角度来看 只是给出了对应的内存地址 而不是像define一样给出的是立即数 所以 const定义的只读变量在程序运行过程中只有一份拷贝(因为它是全局的只读变量 存放在静态区) 而define定义的宏变量在内存中有若干个拷贝 define宏是在预编译阶段进行替换 而const修饰的只读变量是在编译的时候确定其值 define宏没有类型 而const修饰的只读变量具有特定的类型.

 

在生成的执行程序中:

define占用的是代码段的空间和预处理的时间  而const占用的是全局存储空间

 

const修饰的只读变量不能用来作为定义数组的维数,也不能放在case关键字后面.


0 0
原创粉丝点击