C51单片机请问unsigned char readonechar(void) 函数名称前为什么要加unsigned char?

unsigned char readonechar(void)
{
unsigned char i=0;
unsigned char dat=0;
EA=0;

for(i=8;i>0;i--)
{
dat=_cror_(dat,1);
if(readbit())
dat|=0x80;

else
dat|=0x00;
}
EA=1;
return dat;
}

因为此函数为“带返回值的函数”unsigned char代表此函数的返回值为“unsigned char类型的”,如果你C语言不太好的话,可以这样理解:这个函数相当于一个运算符,例如A+B+C,这三项加起来肯定得到的是另一个数,那么此数是什么类型呢,unsigned char就是为了说明这个问题。。。
比如说,unsigned char DAT;
DAT = A+B+C;
DAT = readonechar();//DAT 就等于函数内的 dat(最后一句return dat;);
祝你早日学会单片机!!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2018-05-06

    说明这个函数的返回值是 unsigned char。

    C语言函数原形如下:

    类型 函数名(类型 参数1, 类型 参数2, ...)

    函数名前面的就是函数返回值,表示这个函数结束后就会返回对应的类型。即 return XXX; // XXX 就是 对应的类型

本回答被网友采纳
第2个回答  2012-04-21
因为有return dat,所以这个子函数是有返回值的,返回值的类型是unsigned char
相似回答