首页 理论教育 AVR单片机宏定义快速入门

AVR单片机宏定义快速入门

时间:2023-11-20 理论教育 版权反馈
【摘要】:#define:宏定义命令#undef:终止宏定义命令#define PI 3.14main(){float l,s,r,v;注意事项:1)宏定义必须以#define开头,行末没有分号;2)#define命令一般出现在函数外部;3)每一个#define只能定义一个宏,且只占一行;4)宏定义中的宏体只是一串字符,没有值和类型的含义,编译系统只对程序中出现的宏名用定义中的宏体作简单替换,而不作语法检查,且不分配内存空间;5)宏体为空时,宏名被定义为字符常量0。6)宏定义终止命令#undef结束先前定义的宏名。

AVR单片机宏定义快速入门

定义的一般形式为:

#define 标识符 字符

该宏定义的作用是出现标识符的地方均用字符串来替代。

如:#define PI 3.14

作用:用标识符(称为宏名)PI代替字符串“3.14”。

宏展开:用定义的字符串去替换标识符,然后再对替换处理后的源程序进行编译,这一过程称为宏展开。在预编译时,将源程序中出现的宏名PI替换为字符串“3.14”,这一替换过程称为宏展开。

#define:宏定义命令

#undef:终止宏定义命令

【例6.1】

#define PI 3.14

main()

{float l,s,r,v;

注意事项:

1)宏定义必须以#define开头,行末没有分号;

2)#define命令一般出现在函数外部;

3)每一个#define只能定义一个宏,且只占一行;

4)宏定义中的宏体只是一串字符,没有值和类型的含义,编译系统只对程序中出现的宏名用定义中的宏体作简单替换,而不作语法检查,且不分配内存空间;

5)宏体为空时,宏名被定义为字符常量0。(www.xing528.com)

宏定义的说明:

1)宏名一般用大写字母表示(变量名一般用小写字母)。

2)使用宏可以提高程序的可读性和可移植性。如上述程序中,多处需要使用π值,用宏名既便于修改又意义明确。

3)宏定义是用宏名代替字符串,宏扩展时仅作简单替换,不检查语法。语法检查在编译时进行。

4)宏定义不是C语句,后面不能有分号。如果加入分号,则连分号一起替换。

如:

#define PI 3.14;

area=P*r*r;

宏替换之后成为:

area=3.14;*r*r;

因此,在编译时会出现语法错误。

5)一般来说,通常把#define命令放在一个文件的开头,使其在本文件全部有效(注意,#define定义的宏仅在本文件有效,在其他文件中无效,这与全局变量不同)。

6)宏定义终止命令#undef结束先前定义的宏名。

7)宏定义中可以引用已定义的宏名。

【例6.2】

#define R 3.0

8)对程序中用双引号括起来的字符串,即使与宏名相同,也不替换。如上例的printf语句中,双引号括起来L和S不被替换。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈