3060|5

52

帖子

0

TA的资源

一粒金砂(中级)

楼主
 

关于有返回函数在C51程序设计中的问题?? [复制链接]

最近的程序开发当中,遇到了一个蛮有意思的问题。我现在有一个外设,我写了个初始化函数,bit periphal_ini(),如果初始化成功就返回1,初始化失败就返回0.以前我都是这样写,periphal_ini();

if( periphal_ini() )
{

}
那么请看我的图片,如果我图片上结论正确的话。
那我只要写
if( periphal_ini() )
{
}
就是我认为,在判断peiphal_ini()的时候,这个函数体被完整的执行了。
假设我的结论正确的话,按照我以前那样写,peiphal_ini()这个函数体就被执行了两次,如果里面有全局变量,那程序不就有BUG了吗??
望各位不吝赐教。

有返函数的问题.jpg (155.24 KB, 下载次数: 3)

有返函数的问题.jpg
此帖出自51单片机论坛

最新回复

图片中的程序 没看出毛病   详情 回复 发表于 2017-3-23 08:42
点赞 关注
 

回复
举报

2774

帖子

8

TA的资源

版主

沙发
 
if( periphal_ini() ) 当然会完整的执行periphal_ini()  这是没有疑问的。
此帖出自51单片机论坛

点评

确实是这样的。那么我以后就不会写出periphal_ini();if( periphal_ini() ) {.....}  详情 回复 发表于 2017-3-23 15:10
 
 
 

回复

34

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
本帖最后由 cdzx@163.com 于 2017-3-23 00:05 编辑

如果你不希望periphal_ini()执行两次,你可以这样写:

int f = periphal_ini();
if (f)
{
    ……
}这样你可以反复使用periphal_ini()的返回值。
如果你只需要使用一次periphal_ini()的返回值,那么你后面一种写法是合适的。
此帖出自51单片机论坛

点评

是的,你这种使用位变量的做法很不错,学到了。我那个程序的一个bug就是periphal_ini()里面就是我放了个全部变量,导致被窝两次使用了。多谢赐教。  详情 回复 发表于 2017-3-23 15:08
 
 
 

回复

1234

帖子

4

TA的资源

纯净的硅(高级)

4
 
图片中的程序 没看出毛病
此帖出自51单片机论坛
 
个人签名天地庄周马;江湖范蠡船。
个性签名还是放QQ号吧,2060347305,添加说明EEworld好友
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

5
 
cdzx@163.com 发表于 2017-3-23 00:04
如果你不希望periphal_ini()执行两次,你可以这样写:

int f = periphal_ini();
if (f)
{
    ……
...

是的,你这种使用位变量的做法很不错,学到了。我那个程序的一个bug就是periphal_ini()里面就是我放了个全部变量,导致被窝两次使用了。多谢赐教。
此帖出自51单片机论坛
 
 
 

回复

52

帖子

0

TA的资源

一粒金砂(中级)

6
 
strong161 发表于 2017-3-22 22:32
if( periphal_ini() ) 当然会完整的执行periphal_ini()  这是没有疑问的。

确实是这样的。那么我以后就不会写出periphal_ini();if( periphal_ini() )  {.....}
此帖出自51单片机论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表