打印
[应用相关]

函数返回值的几点疑问,请各位大侠不吝赐教,非常感谢

[复制链接]
505|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
laocuo1142|  楼主 | 2021-2-24 09:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
详细函数结构如下:
u8  LED_con( )
{
        if(语句1)
        {
                while(语句2)
                {
                        语句3;
                        return  1;
                }
                return 2
        }        
       return 3
}
1、哪位高手可以给解释一下"return 1"      "return 2"    "return 3" 的区别?是不是这个函数无论是否有"return 1" 或"return 2" ,最终函数的返回值都会是"return 3" ?

2、正常我需要的是return 1。如果只有"return 1"      "return 2" 而没有return 3, 函数最后就会提示“missing return statement at end of non-void fuction "LED_con"。。。。如果有"return 1"      "return 3",函数就不会报警。
3、因为"return 1"  的值是我想要的,但是最后如果有"return 3"    ,是不是即使前面有"return 1"  ,最终也会被 "return 3"顶替???

使用特权

评论回复
沙发
梦幻人生人| | 2021-2-24 13:42 | 只看该作者
把while 改成if,就满足要求。建议楼主多看看c语言关于关键字功能描述。

使用特权

评论回复
板凳
zchong| | 2021-2-24 15:14 | 只看该作者
随便找本C语言的书先看看啊

使用特权

评论回复
地板
Prry| | 2021-2-24 23:33 | 只看该作者
一个函数只有一个return。return后,函数即退出,不会执行下面。return 3是前面条件不成立才会执行,缺少return3编译器会报警告,因为函数可能没返回值。

使用特权

评论回复
5
waaini| | 2021-2-25 08:40 | 只看该作者
return会立刻跳出函数堆栈,并返回相应的值。建议先学好C的基础,这很重要,不然光是看库里的指针你就会晕。

使用特权

评论回复
6
laocuo1142|  楼主 | 2021-2-25 09:13 | 只看该作者
感谢给我老大回答,问题解决了,感谢

使用特权

评论回复
7
coshi| | 2021-3-4 10:36 | 只看该作者
跳出整个函数啊

使用特权

评论回复
8
tfqi| | 2021-3-4 10:40 | 只看该作者
每一个都是跳出最外围吗

使用特权

评论回复
9
wiba| | 2021-3-4 10:42 | 只看该作者
结构还是很好的

使用特权

评论回复
10
zljiu| | 2021-3-4 10:45 | 只看该作者
效果是一样的

使用特权

评论回复
11
aoyi| | 2021-3-4 10:50 | 只看该作者
实践一下就知道结果了 而且印象深刻

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

962

主题

3934

帖子

10

粉丝