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