免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1270 | 回复: 6
打印 上一主题 下一主题

[函数] 关于函数返回 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-21 10:26 |只看该作者 |倒序浏览
小弟刚编写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)然后在返回。
小第对此不是非常了解希望各位大哥指点

论坛徽章:
0
2 [报告]
发表于 2006-07-21 10:40 |只看该作者
郁闷。。ING。。
看来要慢慢翻书了。

论坛徽章:
0
3 [报告]
发表于 2006-07-21 10:59 |只看该作者
遇到 return 当然马上会返回调用这个函数的地方了...

论坛徽章:
0
4 [报告]
发表于 2006-07-21 11:27 |只看该作者
谢拉

论坛徽章:
0
5 [报告]
发表于 2006-07-21 12:12 |只看该作者
题外话.
一般的约定是0是无错,非0是错误.
当然这只是约定.随大流总是有好处的.呵呵

论坛徽章:
0
6 [报告]
发表于 2006-07-21 18:24 |只看该作者
SUUF!=AC为真执行了语句return后
为真后if(0){}
返回下一句

论坛徽章:
0
7 [报告]
发表于 2006-07-22 09:10 |只看该作者
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP