Board logo

标题: #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