单片机中unsigned char 和unsigned int的区别

#include <reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
void delay(uchar z);
uchar prem;
void main()
{
prem=0xfe;
P0=prem;
while(1)
{
prem=_cror_(prem,1);
delay(100);
P0=0XFF;
delay(100);
P0=prem;
}

}
void delay(uchar z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=100;j>0;j--);
}
在这个程序中把下面的delay函数中的uint改成uchar有很大区别,为什么?
改过之后delay函数不起作用了 为什么

第1个回答  2012-04-26
明显两者是不能替换的,int占内存空间是2个字节,char 是一个字节,int型运行要比char慢呀,所以定义时要注意下.
第2个回答  2011-11-13
uint 是无符号整型
uchar是无符号字符型
一个是数字,一个是字符当然区别大了。
第3个回答  2011-11-13
不至于吧,虽然说换成字符型的,范围变小了,但也有256啊,够你的程序用了!
第4个回答  2011-11-13
uint;16位无符号整数型,0-65535

uchar:8位无符号字符型:0-255
范围差不少呢追问

在这个程序里范围未超啊,才100,而且为什么delay()里用的是uchar型,我用的是8052单片机

第5个回答  2011-11-13
一个是8位的 一个是16位的
相似回答