您的位置:首页 > 其它

#define与const的存储差别

2015-03-18 12:59 169 查看
#define A 3 与 const uint8_t A = 3;哪个更好呢?

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

在生成的执行程序中:

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

const修饰的只读变量不能用来作为定义数组的维数,也不能放在case关键字后面.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: