标题: #define 与const 的区别 [打印本页]
作者: bestruan 时间: 2006-10-8 11:02 标题: #define 与const 的区别
用C编程时,有两种方法定义常量:一是用宏定义的#define,二是定义const类型的变量。我想问一下,对于单片机开发的编程,两者有什么区别呢?
谢谢!!!
作者: strongchen 时间: 2006-10-8 11:53
#define是定义一个宏替代,在编译时直接用所定义的内容替代被定义的宏;而const是定义一个常量,要在芯片存储空间占据相应的位置,程序运行时再调用其值。
作者: bestruan 时间: 2006-10-10 11:41
请问strongchen,这样的话const定义在程序中好像没有大的用处啊!您能指点下const定义常量用在哪里吗?
谢谢!
作者: strongchen 时间: 2006-10-11 10:55
它们是不一样的。用宏定义的常量是要直接替换到程序中去的,所以每用到一次,就要替换一次。如果这个常量比较大,而且又多次使用,就会占用很大的程序空间。而const定义的常量是放在一个固定地址上的,每次使用时只调用其地址即可。另外,const虽然也是放在程序空间里的,但一般放在FLASH里,通过某些方式是可以改变其内容的,所以具有更大的灵活性。
作者: fjczd 时间: 2008-12-17 16:58
又学了一点
[em01]
作者: raywcx 时间: 2009-3-18 11:59
学习了。。。。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) |
Powered by Discuz! 7.0.0 |