函數的處理結果包含兩個數據,如何把兩個數據返回給調用函數?
第一種,把兩個數據封裝成一個結構體,函數返回結構體。
調用函數的地方同樣用結構體去接收函數的返回值。
第二種,把返回值保存在形參中。
既然已經知道函數會返回兩個數據,提前申請兩個元素的內存,并且把數組作為參數傳遞過去,把返回值放在數組中就行。
第三種,定義一個全局的結構體變量,這樣可以不用傳參也不用返回,直接操作全局數據。
比較典型的錯誤寫法有兩種。
第一種,在函數內部定義一個數組,直接把數組返回,這是典型的返回局部變量地址,不可取。
第二種,直接返回兩個數據,但是這是C語言,目前還不支持這種操作。
還有沒有其他方法,歡迎大家在評論區補充。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
數據
+關注
關注
8文章
7255瀏覽量
91813 -
函數
+關注
關注
3文章
4379瀏覽量
64827
原文標題:讓函數返回兩個數據
文章出處:【微信號:學益得智能硬件,微信公眾號:學益得智能硬件】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
熱點推薦
【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
求助,關于STM32G070調用HAL_I2C_Mem_Read_IT測試疑問求解
使用兩個板子,在例程I2C_TwoBoards_RestartComIT代碼上進行修改:
主機調用HAL_I2C_Mem_Read_IT函數,發送內存地址16位后讀10個數據;
從機
發表于 03-11 07:00
STM32H747I DSI模塊采用一個數據通道無法顯示圖片怎么解決?
,但是顯示屏黑屏。可以確定的是D0P/D0N有數據輸出,但是無法在顯示屏上顯示。
下面是我在官方例程中修改的地方,其實就是把兩個數據通道改為一個數據通道,其他地方沒有動。
開發板采用
發表于 03-07 08:11
調用DLPC34XX_WriteOperatingModeSelect(DLPC34XX_OM_SENS_INTERNAL_PATTERN)函數,返回的是1,為什么?
我們在64位的代碼中,調用DLPC34XX_WriteOperatingModeSelect(DLPC34XX_OM_SENS_INTERNAL_PATTERN)函數,返回的是1,意思應該是程序
發表于 02-17 08:29
HAL庫的函數調用示例
HAL(Hardware Abstraction Layer,硬件抽象層)庫是STM32等微控制器中常用的庫,它為開發者提供了訪問和控制硬件設備的接口。以下是一些常用的HAL庫函數及其調用示例: 一
同樣是函數,在C和C++中有什么區別
值,即使沒有數據返回,也得寫 void。 第二個函數名。 C語言的函數名絕對不能重名,除了用上 weak 這樣的黑科技。同一個項目中,函數重
ADS125H01測量結果在兩個數值之間跳變,如何規避此類問題?
變,兩個數值的差別大約在0.017V,遠遠大于低壓時的數據波動幅度,每次結果值跳變大約會持續10s以上。
請問這是什么原因導致的數值跳變,如何規避此類問題?
發表于 11-27 08:25
常用SQL函數及其用法
SQL(Structured Query Language)是一種用于管理和操作關系數據庫的編程語言。SQL 提供了豐富的函數庫,用于數據檢索、數據更新、
嵌入式學習-飛凌嵌入式ElfBoard ELF 1板卡-i2c與從設備通訊編程示例之i2c編寫程序
要寫入數據的設備地址。調用ioctl函數執行i2c讀操作,并將返回值賦給ret。如果返回值小于0
發表于 11-01 11:31
飛凌嵌入式ElfBoard ELF 1板卡-i2c與從設備通訊編程示例之i2c編寫程序
使用memcpy函數將要寫入的數據buf拷貝到后續的字節位置。③寫入數據調用ioctl函數執行i2c寫操作,并將
發表于 10-31 12:00
ESP8266收到重傳的UDP數據包,則udp接收回調函數會調用兩次,怎么解決?
我們使用 esp8266 開發了一個網格系統。
在所有開發完成時,我們發現了一個關鍵問題。
如果ESP8266收到重傳的 UDP 數據包,則 udp 接收回調函數會調用兩次。
(*
發表于 07-18 06:29
評論