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

標題: 關于C語言函數參數傳遞的問題 [打印本頁]

作者: 羽翼之凋零    時間: 2022-2-2 00:13
標題: 關于C語言函數參數傳遞的問題
在接觸到了ucos之后第一次知道了可以通過函數的參數來獲得數據,那入口參數和返回值有什么區別呢?求各位大佬指教在這個兩個函數uint8_t ReadData(uint8_t byte)
{
byte = byta + 10;
return byte;
}

void ReadData(uint8_t byte,uint8_t* data);
{
*data = byte + 10;
}



作者: daemondong    時間: 2022-2-2 08:12
如果只有一個返回值,這兩個函數效果基本一樣,只是調用方法不同

a=ReadData(bb)  和 ReadData(bb, &a)

但如果需要返回多個值,那只能用第二個辦法了。

作者: lkc8210    時間: 2022-2-2 10:26
如果只有一個數就沒有分別,如果超過一個數就只能用參數
作者: Hephaestus    時間: 2022-2-2 12:27
形參實參的概念回去看教科書,這里一兩句說不清楚。
作者: devcang    時間: 2022-2-2 15:18
前面的是一般函數。后邊的是直接通過變量地址存取值。
作者: 羽翼之凋零    時間: 2022-2-2 15:54
daemondong 發表于 2022-2-2 08:12
如果只有一個返回值,這兩個函數效果基本一樣,只是調用方法不同

a=ReadData(bb)  和 ReadData(bb, &a)
...

謝謝大佬,那我以后就一直用第二個方法吧
作者: 羽翼之凋零    時間: 2022-2-2 15:55
Hephaestus 發表于 2022-2-2 12:27
形參實參的概念回去看教科書,這里一兩句說不清楚。

電子維修半路出家,就一本Cprimerplus入門  
作者: 羽翼之凋零    時間: 2022-2-2 18:43
謝謝各位大佬的指教
作者: 田賀    時間: 2022-2-5 10:52
指針和形參實參概念,第一個是把值傳進來,第二個是把要存放結果的地址傳進來,直接對地址上的內容進行修改。
作者: hhh402    時間: 2022-2-5 12:22
羽翼之凋零 發表于 2022-2-2 15:54
謝謝大佬,那我以后就一直用第二個方法吧

盡量用第一種,方便模塊化,第二種有出錯的風險,特別是幾個函數同時改變一個參數時有可能會出錯。
作者: Hephaestus    時間: 2022-2-5 16:12
羽翼之凋零 發表于 2022-2-2 15:54
謝謝大佬,那我以后就一直用第二個方法吧

第二個方法未必通用,比如大多數場合只打算傳遞值,并不想要改變變量的值。
作者: ankangyu    時間: 2022-2-5 21:09
uint8_t *data是指針指向的一個存儲區域而uint8_t  byte則不是
作者: wojiaoguogai    時間: 2022-2-10 14:47
第一種是值傳遞,要開辟新的棧空間來存放這個形參,再把這個形參的數據返回去,再用調用的函數去接    第二種是指針傳遞,直接修改




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