欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: C語言中return語句的用法疑惑 [打印本頁]

作者: hxdby    時間: 2023-5-8 11:33
標題: C語言中return語句的用法疑惑
大家好,

雖然在實際編程中也經常用到return這個關鍵字,但是一般就是放在函數最后,返回一個最終值。
對return的用法僅限于此,但是聽說return還有其他用法,比如可以結束函數的執行,這個我就不是特別清楚了。

比如有如下的程序函數:

unsigned char  get_final_value(void)
{
      if(data0>=5)  return data0; //------1
      if(data1<=9)  return data1; //-------2

     if(data2 >1 && data3 <8) //------3
     {
          if(adc1== sample_value) return sample_value; //------4
          esle if(adc1 < sample_value)  get_adc_value0=sample_value; //------5
          esle if(adc1 > sample_value)  get_adc_value1=sample_value;   //------6     
     }

     return  get_adc_value0; //----------7
}


這里我有幾個點不太理解,如果上面代碼里,第1步中如果data0>=5這個條件滿足,那么會返回data0,那么程序還會往下執行嗎?
也就是后面的2~7步還會執行嗎?是不是就退出程序了?

比如第4步中,如果返回了sample_value,是不是后面的5~7步也不會執行了,程序就退出了?

感謝大家指教!

作者: wydev    時間: 2023-5-8 12:37
什么時候return ,就什么時候結束了,后面的就不會執行了
作者: Hephaestus    時間: 2023-5-8 12:39
return就是返回,怎么可能執行下面的語句?
作者: jinjin999    時間: 2023-5-8 13:47
在這個函數中,如果條件滿足,例如 data0>=5,return data0 會立即結束函數并返回 data0 值。這意味著后續的代碼不會被執行,包括2-7步。  同樣地,如果在第4步中,條件 adc1== sample_value 滿足,return sample_value 將結束函數并返回 sample_value 值,后續代碼不會被執行。如果條件不滿足,執行下一條條件語句,即第5步或第6步中的一個。如果這些條件也不滿足,將執行最后一條 return get_adc_value0 并返回 get_adc_value0 值。  需要注意的是,這個函數返回一個 unsigned char 值。如果在函數的某個地方沒有返回語句,編譯器可能會生成一個警告或錯誤。因此,在這種情況下,當滿足特定條件時,使用 return 語句來明確指示函數結束并返回一個值非常重要。
作者: wufa1986    時間: 2023-5-8 14:12
return就是立即返回,不管在哪里
作者: man1234567    時間: 2023-5-9 10:00
return就是返回,如果后面帶個跟班的就帶著一起走。
返回的意思就是結束本函數的運行回到上一級調用的后一句。
作者: coody_sz    時間: 2023-5-9 10:25
函數中,一旦執行return就會返回,不會再執行別的代碼。
作者: 長風007    時間: 2023-5-9 11:40
return的理解就是返回,返回到調入本涵數的入口處。自然就不會再執行涵數中的下面的代碼了。
作者: Hephaestus    時間: 2023-5-9 11:58
放在最后是機械教條主義。
作者: ly1972001    時間: 2023-5-10 13:40
return = goto END
作者: li64331218    時間: 2023-5-10 14:00
討論熱烈。return=返回入口處! 后面的判斷都是徒勞的。
作者: huxiaolin    時間: 2023-5-10 15:32
當前條件為真,遇到break;return;都是跳出當前循環執行下一次程序循環。
作者: Hephaestus    時間: 2023-5-10 15:40
huxiaolin 發表于 2023-5-10 15:32
當前條件為真,遇到break;return;都是跳出當前循環執行下一次程序循環。

c語言跳出本次循環執行下一次是continue;,真不知道你的c語言是跟誰學的。
作者: huxiaolin    時間: 2023-5-10 16:39
Hephaestus 發表于 2023-5-10 15:40
c語言跳出本次循環執行下一次是continue;,真不知道你的c語言是跟誰學的。

裸機。。。
作者: Hephaestus    時間: 2023-5-10 18:33
huxiaolin 發表于 2023-5-10 16:39
裸機。。。

跟裸機有什么關系,break是執行循環外的第一行語句,return是返回調用函數的函數,continue是不執行循環里面下面的語句,從循環開頭重新執行。這都是c語言最基本的常識。




歡迎光臨 (http://m.raoushi.com/bbs/) Powered by Discuz! X3.1