函數的處理結果包含兩個數據,如何把兩個數據返回給調用函數?
第一種,把兩個數據封裝成一個結構體,函數返回結構體。
調用函數的地方同樣用結構體去接收函數的返回值。
第二種,把返回值保存在形參中。
既然已經知道函數會返回兩個數據,提前申請兩個元素的內存,并且把數組作為參數傳遞過去,把返回值放在數組中就行。
第三種,定義一個全局的結構體變量,這樣可以不用傳參也不用返回,直接操作全局數據。
比較典型的錯誤寫法有兩種。
第一種,在函數內部定義一個數組,直接把數組返回,這是典型的返回局部變量地址,不可取。
第二種,直接返回兩個數據,但是這是C語言,目前還不支持這種操作。
還有沒有其他方法,歡迎大家在評論區補充。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
7343瀏覽量
94979 -
函數
+關注
關注
3文章
4419瀏覽量
67766
原文標題:讓函數返回兩個數據
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
函數指針與回調函數解讀
。
那么結果是啥樣呢?
可以發現函數指針func_ptr和cal_sum函數的存儲的地址以及他們所計算出來的值是一樣的。
比如在上面求兩個數和的基礎上再求兩個數的乘積和差,會是啥樣的呢
發表于 01-19 07:34
C語言函數指針的六個高級的應用場景
;
}
在上面的代碼中,我們定義了一個 handle_event 函數,它接受兩個參數:一個事件類型和一個函數指針。如果函數指針不為空,則會調用
發表于 01-04 12:25
ElfBoard嵌入式教育科普|Linux系統I/O接口:Open函數詳解
1.函數概述open()是Linux/Unix內核提供的底層系統調用,核心功能是打開或創建文件。成功調用后,內核會返回一個整型的文件描述符作為該文件的句柄,后續的所有讀寫操作都基于此描
如何用好 C 語言函數的返回值?
“潛規則”
C語言函數當然可以使用返回值 0 表示“失敗”,用返回值 1 表示“成功”。
事實上,C語言函數用什么樣的返回值表示成功或者失
發表于 12-25 07:17
函數調用性能消耗
一個字)或者小于四個字大?。òㄕ加?個字的doubles和long longs)。
如果參數限制個數為4,那么第五個和之后的字就會存儲在棧上。這便在調用函數是需要從棧上加載參數從而增加存儲和讀取的消耗
發表于 12-12 07:50
函數指針的概念
(*Fun1)(int x),但習慣上一般不這樣。
typedef int (*Fun2)(int, int);//參數為兩個整型,返回值為整型
typedef void (*Fun3)(void
發表于 12-11 08:10
使用setjmp及longjmp函數處理異常
) {
// 調用foo函數,傳入一個非零值
foo(10);
// 調用foo函數,傳入一個零值
foo(0);
} else {
// 如果返
發表于 12-11 08:00
檢查函數返回值的錯誤和異常處理方法
檢查函數返回值:這是最常見也最基本的錯誤處理和異常處理方法,就是在調用一個函數后,檢查其返回值是否符合預期或是否表示出錯或失敗。如果出錯或失
發表于 12-11 06:48
如何用函數指針調用函數
(void)
{
int(*p)(int, int);//定義一個函數指針
int a, b, c;
p = Max;//把函數Max賦給指針變量p, 使p指向Max
發表于 12-11 06:26
飛凌嵌入式ElfBoard-文件I/O的了解探究之返回錯誤處理與相關函數
errno僅返回數值,還需查閱錯誤宏定義才能知道具體錯誤原因,由此引入以下兩個標準c庫函數。perror用于在發生系統調用錯誤時輸出有關錯誤信息的描述。當一個系統
發表于 11-21 08:50
調用Cy_ReadFuseByte()函數,返回0xF0000005是怎么回事?
。 當我們調用 Cy_ReadFuseByte() 函數時,返回的是 0xF0000005(熔斷 eFuse 的軟件流程中的第 5 步)
遵循架構參考手冊和數據表:
“在過渡到安全或
發表于 07-24 07:08
【HarmonyOS 5】鴻蒙頁面和組件生命周期函數
的 UI 結構和樣式。 onDidBuild: build 方法執行完畢后調用,可用于數據初始化或額外的 UI 調整。 掛載階段 onPageShow: 頁面顯示時調用。 onReady: 組件掛載
S32K144使用MCAL配置MCU時鐘時,調用Mcu_GetPLlStatus()函數沒有返回PLL_LOCKED信號的原因?
當我使用 MCAL 配置 MCU 時鐘時,調用 Mcu_GetPLlStatus () 函數沒有返回 PLL_LOCKED 信號。我發現在這個 MCU_initClock() 函數中沒
發表于 04-11 07:26
如何把兩個數據返回給調用函數
評論