STM32/STM8技术william hill官网
直播中

关心月

6年用户 100经验值
擅长:嵌入式技术,控制/MCU
私信 关注
[问答]

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

详细函数结构如下:
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"顶替???
已退回10积分

回帖(5)

阿信509

2020-10-26 09:31:27
return 1的意思是说在那里就退出了,轮不到执行下面的语句了
2 举报
  • 关心月: 如果执行到了return 1,退出的是整个u8 LED_con()函数么
  • 阿信509 回复 关心月: 任何时候执行了人return都是退出整个函数

阿信509

2020-10-26 09:35:36
你找本C语言的书看看就明白了,无论何时只要碰到return就返回了
举报

阿信509

2020-10-26 09:36:56
你看前面那个if语句,renturn 3是有可能被执行到的,所以没有就会报错
举报

zmy_87a

2020-10-28 07:47:43
能执行到while,return1;能到if,while不满足,return2,否则return3
举报

Sylvain

2020-10-30 08:50:31
你要调用这个函数,同时赋值给一个变量这个函数的返回值。不然返回就返回,停止就是停止。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分