找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2294|回復(fù): 12
收起左側(cè)

關(guān)于C語言函數(shù)參數(shù)傳遞的問題

[復(fù)制鏈接]
ID:705806 發(fā)表于 2022-2-2 00:13 | 顯示全部樓層 |閱讀模式
在接觸到了ucos之后第一次知道了可以通過函數(shù)的參數(shù)來獲得數(shù)據(jù),那入口參數(shù)和返回值有什么區(qū)別呢?求各位大佬指教在這個兩個函數(shù)uint8_t ReadData(uint8_t byte)
{
byte = byta + 10;
return byte;
}

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


回復(fù)

使用道具 舉報

ID:827243 發(fā)表于 2022-2-2 08:12 | 顯示全部樓層
如果只有一個返回值,這兩個函數(shù)效果基本一樣,只是調(diào)用方法不同

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

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

使用道具 舉報

ID:161164 發(fā)表于 2022-2-2 10:26 來自觸屏版 | 顯示全部樓層
如果只有一個數(shù)就沒有分別,如果超過一個數(shù)就只能用參數(shù)
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-2-2 12:27 | 顯示全部樓層
形參實參的概念回去看教科書,這里一兩句說不清楚。
回復(fù)

使用道具 舉報

ID:277550 發(fā)表于 2022-2-2 15:18 | 顯示全部樓層
前面的是一般函數(shù)。后邊的是直接通過變量地址存取值。
回復(fù)

使用道具 舉報

ID:705806 發(fā)表于 2022-2-2 15:54 | 顯示全部樓層
daemondong 發(fā)表于 2022-2-2 08:12
如果只有一個返回值,這兩個函數(shù)效果基本一樣,只是調(diào)用方法不同

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

謝謝大佬,那我以后就一直用第二個方法吧
回復(fù)

使用道具 舉報

ID:705806 發(fā)表于 2022-2-2 15:55 | 顯示全部樓層
Hephaestus 發(fā)表于 2022-2-2 12:27
形參實參的概念回去看教科書,這里一兩句說不清楚。

電子維修半路出家,就一本Cprimerplus入門  
回復(fù)

使用道具 舉報

ID:705806 發(fā)表于 2022-2-2 18:43 | 顯示全部樓層
謝謝各位大佬的指教
回復(fù)

使用道具 舉報

ID:290373 發(fā)表于 2022-2-5 10:52 | 顯示全部樓層
指針和形參實參概念,第一個是把值傳進來,第二個是把要存放結(jié)果的地址傳進來,直接對地址上的內(nèi)容進行修改。
回復(fù)

使用道具 舉報

ID:491577 發(fā)表于 2022-2-5 12:22 | 顯示全部樓層
羽翼之凋零 發(fā)表于 2022-2-2 15:54
謝謝大佬,那我以后就一直用第二個方法吧

盡量用第一種,方便模塊化,第二種有出錯的風(fēng)險,特別是幾個函數(shù)同時改變一個參數(shù)時有可能會出錯。
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2022-2-5 16:12 | 顯示全部樓層
羽翼之凋零 發(fā)表于 2022-2-2 15:54
謝謝大佬,那我以后就一直用第二個方法吧

第二個方法未必通用,比如大多數(shù)場合只打算傳遞值,并不想要改變變量的值。
回復(fù)

使用道具 舉報

ID:587810 發(fā)表于 2022-2-5 21:09 | 顯示全部樓層
uint8_t *data是指針指向的一個存儲區(qū)域而uint8_t  byte則不是
回復(fù)

使用道具 舉報

ID:415064 發(fā)表于 2022-2-10 14:47 | 顯示全部樓層
第一種是值傳遞,要開辟新的?臻g來存放這個形參,再把這個形參的數(shù)據(jù)返回去,再用調(diào)用的函數(shù)去接    第二種是指針傳遞,直接修改
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表