首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

#define 与const 的区别

#define 与const 的区别

用C编程时,有两种方法定义常量:一是用宏定义的#define,二是定义const类型的变量。我想问一下,对于单片机开发的编程,两者有什么区别呢?


谢谢!!!

bestruan! go on!
#define是定义一个宏替代,在编译时直接用所定义的内容替代被定义的宏;而const是定义一个常量,要在芯片存储空间占据相应的位置,程序运行时再调用其值。
海纳百川  有容乃大
请问strongchen,这样的话const定义在程序中好像没有大的用处啊!您能指点下const定义常量用在哪里吗?
谢谢!
bestruan! go on!
它们是不一样的。用宏定义的常量是要直接替换到程序中去的,所以每用到一次,就要替换一次。如果这个常量比较大,而且又多次使用,就会占用很大的程序空间。而const定义的常量是放在一个固定地址上的,每次使用时只调用其地址即可。另外,const虽然也是放在程序空间里的,但一般放在FLASH里,通过某些方式是可以改变其内容的,所以具有更大的灵活性。
海纳百川  有容乃大

又学了一点

[em01]
学习了。。。。
返回列表