手把手教你学单片机的C语言程序设计六编译预处理
维普资讯
\ 学 习单片机
所谓螭译预处理,是蝙译嚣在对C语言源程序进行正常墒译之前,先对一些特殊的预处理命令作解释,产生一个新
的源程序.蝙译预处理主要为程序调试.移植等提供便剃,是一个非常实用的功能
到文件结束。如果需要终止宏定义的作 uchar code SEG7 f10I一
用域.可以用#undef命令。例如: {Oxc0.0xf9.0Xa4.0xb0.0x99.0xg2.0x82.0xf
#undefPr 8.0x800x,gO.}://3
J,一 … … 一 一 =4一 一 :
则该语句之后的PI不再代表 314,这
在源程序中.为了区分预处理命令 voidmain(void) //5
样可以曼活控制宏定义的范围。
和一般的C语句的不同.所有预处理 f
4)宏定义时可以引用己经定义的
命令行都以符号。群”开头.并且结尾不 uchera.b.sum; /7/
宏名。例如:
用分号。预处理命令可以出现在程序任 a=55; //8
#defineR 20
何位置,但习惯上尽可能地写在源程序 b:20o: //9
#define PI314
的开头.其作用范围从其出现的位置到 sum=a+b; lil0
#defineALL PIR
文件尾 。 P2=SEG7[aum/1。0】: Ⅳ11
5 对程序中用双引号扩起来的孛 P1=SEG7【(sum%100)/10]; #12
C语言提供的预处理命令主要有:
符串内的字符.不进行宏的替换操作。 P0=SEG7【sum%10]; #13
宏定义、文件包含和条件编译。其中宏
2.带参数的宏定义 whiel(11、 //14
定义分为带参数的宏定义和不带参数
为了进一步扩大宏的应用范围.在 } //15
的宏定义。
定义宏时.还可以带参数。带参数的宏 编译通过后.将生成的cslO.hex
1.不带参数的宏定义
定义的一般形式为: 文件烧录到89S51芯片中。将芯片插
不带参数的宏定义的一般形式为:
#define标识符(参数表)宇符串 入到