- 论坛徽章:
- 0
|
小弟刚编写C不久 对函数的返回有点迷糊;这里有一段小弟最近刚写的代码
请各位高手指点下迷津。。
#include <reg51.h>
#define uchar unsigned char
sfr p1=0x90;
sfr scon=0x98;
sfr sbuf=0x99;
sbit p3_7=0xb0^7;
void main(void)
{ int result,a,c;
TMOD=0x20; /*设T1定时器工作方式2*/
TH1=0xfd; /*波特率为9600,11.0592MHZ晶振*/
TCON=0x40; /*开启T1记时器*/
SCON=0xf0; /*开启串行口方式3工作,允许接收,多机通讯方式*/
PCON=0x00;
result=master(a,c);
..........
}
uchar master (uchar addr,uchar command)
{ uchar ac,b,i;
addr=p1
adrr=adrr|0x0f
command=command|0xf8
ac=adrr&command /*地址&命令*/
SBUF=ac /*发送地址命令*/
TB8=1
p3_7=1
while(TI!=1);TI=0; /*发送地址命令*/
p3_7=0
while(RI!=1);RI=1; /*等待丛机应答*/
p3_7=1
if(SBUF!=ac){return(0);} /*返回0表示错误*/
return(1); /*返回1表示正确*/
}
主要是关于return的我这个函数有两个return打个比方说吧我的程序执行到if(SBUF!=ac){return(0);} /*返回0表示错误*/
如果SUUF!=AC为真执行了语句return后那么PC指针是不是直接跳回住函数?并返回一个值为0
还是在执行下一句return(1)然后在返回。
小第对此不是非常了解希望各位大哥指点 |
|