关于单片机C语言不懂得问题

这下面是一段流水灯的编程。不懂第二句和第三句到底什么用?(用通俗的语言讲)。还有下面第7句的uchar temp是怎么回事?用得着这一句吗?(我知道temp是个名称,但是前面uchar是什么意思?请具体说一说。我是刚学这个。)感谢了!!!

#include<reg51.h> //51系列单片机定义文件
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
void delay(uint); //声明延时函数
void main(void)
{
uint i;
uchar temp;
while(1)
{
temp=0x01; //给初值,第一个灯灭
for(i=0;i<8;i++) //8个流水灯逐个闪动
{
P1=~temp; //将temp取反再赋值给P1口
delay(100); //调用延时函数
temp<<=1; 流水灯左移
}
temp=0x7F; //给初值,第一个灯亮。
for(i=0;i<8;i++) //8个流水灯依次反向全部点亮
{
P1=temp; //将temp赋给P1
delay(100); //调用延时函数
temp>>=1; //流水灯右移
}
}

}
void delay(uint t) //定义延时函数
{
register uint bt;
for(;t;t--)
for(bt=0;bt<255;bt++);
}

#define uchar unsigned char //定义无符号字符

说明如下:
#define :代表定义、规定的意思
uchar :作者自编的符号
unsigned char :C语言里的固定写法

编写程序时,用“C语言里的固定写法”,有时会嫌长,打字太多,想用短一些的字符来代替,那么就在前边写上:
#define uchar unsigned char //定义无符号字符

以后就可以用“uchar”代替“unsigned char”。

那么 uchar temp
就和 unsigned char temp
相同。
uchar temp 就是指定了一个无符号字符变量temp。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-21
#define uchar unsigned char //定义无符号字符
看到这一句了没?他的意思是定义宏"uchar",表示unsigned char。通俗一点说,有了这一句,在这句之后的程序中,凡是遇到"uchar",都表示unsigned char,所以第二句中的
uchar i;就是unsigned cahr i;
而unsigned char表示无符号字符型变量,所以这两句就是定义无符号字符型变量i和temp。
第2个回答  2009-08-21
#define uchar unsigned char //定义无符号字符
这句相当于用uchar这个简写来替代本来要用unsigned char的地方

第七句你就理解为unsigned char temp就好了

#define uint unsigned int //定义无符号整数
这句相当于用uint来替代unsigned int

可以少打些字,另外linux的头文件早已经这样用了。
第3个回答  2009-08-21
#define 是C语言中进行编译预定义的方法。
#define uchar unsigned char //定义无符号字符
#define uint unsigned int //定义无符号整数
的意思是定义:
uchar与unsigned char等价
uint与unsigned int 等价
在后面的程序里就可以用uchar代替unsigned char,用uint代替unsigned int 。
所以楼主问的uchar temp是啥意思就好理解了。
如前所述,跟unsigned char temp是一样的。