国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

函數的具體實現

FPGA之家 ? 來源:FPGA之家 ? 作者:FPGA之家 ? 2022-07-03 11:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

嵌入式軟件開發中,一個項目往往需要多人協作完成。

比如A需要完成項目的整體邏輯功能,而整個邏輯功能包含許多具體的小功能,但A又沒有時間或能力來實現這些小功能,這時可以讓B來協助實現函數內部的功能。

通常的思路是,B寫好某個函數后,A直接通過B聲明的函數調用即可。但這會有一些問題,例如B寫好函數之后,A只能使用B聲明的函數名來使用,假如B聲明的函數名的命名規則很不符合A的口味,A用起來就很不爽,哈哈。那這樣怎么辦呢?聰明的A可以自己再聲明一個自己喜歡的函數名,并通過函數指針傳遞的功能來獲得B的功能。

下面來講一下具體實現:

1 聲明函數指針-A負責

比如A需要一個求和功能的函數,但他沒時間寫,他可以自己先聲明一個函數指針:

//a中聲明一個指針函數,其函數內部的功能需要另一個人b來完成 int (*mysum)(int, int)=0;

這個看起來和普通的函數聲明很像,都有函數名,返回值類型與參數類型,但該函數名前有一個星號,表示它是函數指針,另外其函數實體可以先初始化為0。

2 函數指針賦值-A負責

這一步相當于函數指針初始化,也相當于函數注冊,就是將A聲明的函數指針,通過指針賦值的方式,來獲得B實現的函數功能,相當于是給B寫的函數套上一層A的殼:

//初始化指針函數,傳入 b寫的函數的函數名,//通過函數指針賦值,main中聲明的函數,就可以使用b寫的函數功能了 int init_mysum_func(int(*func_handle)(int,int)){            mysum = func_handle;            return 0;}
3 函數的具體實現-B負責

B這個人只要按照A聲明的函數指針的格式(返回值與參數類型一致,函數名可以隨意)完成函數內部功能即可,這里以簡單的求和為例,在b.h文件中,B實現的功能如下:

int sum_by_b(int a, int b){    returna+b;}
4 項目整理邏輯-A負責

項目邏輯很簡單,就是求1+2的值,這時A在使用自己聲明的mysum之前,初始化(注冊)一下該函數(將B寫的函數“sum_by_b”套上A寫的殼“mysum”),然后就可以使用了,使用實例如下:

int main(){    int res = 0;
    init_mysum_func(sum_by_b);//初始化指針函數, 將 b完成的函數功能賦予a聲明的函數 
    res = mysum(1,2);//使用a聲明的求和函數進行求和,其內部實現其實的b完成的 
    printf("mysum(1,2) = %d",res);
    return 0;}

測試結果:

mysum(1,2) = 3--------------------------------Process exited after 0.007424 seconds with return value 0請按任意鍵繼續. . .

原文標題:嵌入式中的合作開發——函數指針

文章出處:【微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭靜

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4417

    瀏覽量

    67524
  • 嵌入式軟件
    +關注

    關注

    4

    文章

    250

    瀏覽量

    28062
  • 函數指針
    +關注

    關注

    2

    文章

    57

    瀏覽量

    4152

原文標題:嵌入式中的合作開發——函數指針

文章出處:【微信號:zhuyandz,微信公眾號:FPGA之家】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    DMA(Direct Memory Access)的具體原理和實現方法是什么

    ()、sf32lb_dma_start_dt() 等,用來從 DT 描述中直接初始化和啟動 DMA。[SF32LB DMA 輔助函數] 3. DMA 在具體外設中的應用示例思路 知識源里沒有完整代碼示例,但給出了幾個典型場景
    發表于 02-12 10:16

    博世GTM IP模塊在車載系統中的具體實現方式與優勢

    在汽車電子系統中,如何充分發揮 GTM IP的功能,以滿足復雜的系統級應用場景,是用戶實現高效控制與精確響應的關鍵。本文將聚焦幾個典型且核心的應用實例,探討GTM IP在車載系統中的具體實現方式與優勢。
    的頭像 發表于 12-30 17:36 ?703次閱讀
    博世GTM IP模塊在車載系統中的<b class='flag-5'>具體</b><b class='flag-5'>實現</b>方式與優勢

    如何在Zephyr RTOS中實現延時和計時函數

    多種延時與計時實現方案,滿足不同應用場景的需求。那么,大家平時都是怎么在MCU程序中實現計時函數實現延時的呢?
    的頭像 發表于 12-26 10:32 ?5490次閱讀
    如何在Zephyr RTOS中<b class='flag-5'>實現</b>延時和計時<b class='flag-5'>函數</b>

    內存拷貝函數 memcpy原理及實現

    內存拷貝函數memcpymemcpy是memory copy的縮寫,意為內存復制,在寫C語言程序的時候,我們常常會用到它。它的函原型如下:void *memcpy(void *dest, const
    發表于 12-26 08:03

    蜂鳥E203的GPIO管腳使用

    和board_mcu200t.h文件includ到main里即可直接調用它們,birdv2_gpio.c文件是GPIO驅動函數具體實現函數中GPIO_TypeDef *gpio在調
    發表于 10-30 07:25

    TCORDIC算法實現正余弦函數

    TCORDIC算法,由低延遲CORDIC算法和Taylor展開組成。Taylor展開計算作為CORDIC算法的補充,能夠結合CORDIC算法和Taylor展開方式來計算浮點正余弦函數實現基于統一
    發表于 10-29 06:30

    計算程序執行指令數的函數實現

    (來源:手把手教你設計cpu_RISC-V處理器),他們分別存儲了指令計數器的高低32位 至此就大致能理解指令數計算函數實現原理,即通過csrr指令讀minstreth和minstret寄存器得到執行操作前后的指令計數值,再取其差值即可得到該操作耗費的指令數。周期數計
    發表于 10-28 06:27

    使用函數實現三相電機正反轉控制

    在使用西門子S1200PLC,所使用的軟件是博途軟件,在這個軟件里運用了塊的概念。比如我們常見的組織塊(OB)、函數塊(FB)、數據塊(DB)以及函數FC等。今天我們來具體交流一下這個函數
    的頭像 發表于 10-15 14:40 ?2724次閱讀
    使用<b class='flag-5'>函數</b>塊<b class='flag-5'>實現</b>三相電機正反轉控制

    數據濾波算法的具體實現步驟是怎樣的?

    ? 數據濾波算法在電能質量在線監測裝置中的具體實現,需圍繞 “ 數據采集→預處理→算法執行→參數適配→效果驗證→結果輸出 ” 的全流程展開,核心是結合裝置硬件特性(采樣率、ADC 精度)和干擾類型
    的頭像 發表于 10-10 16:45 ?826次閱讀

    請問在移植rtthread nano版時官網里面系統時鐘函數在哪里實現的?

    我在已有的華大HC32開發板的LED例程里我找不到官網移植教程里的這三個函數,文檔也沒說明這三個函數的移植步驟?到底在哪里找的?是rtthread里的實現還是需要用戶自己找函數
    發表于 09-26 08:09

    詳解hal_entry入口函數

    當使用RTOS時,程序從main函數開始進行線程調度;當沒有使用RTOS時,C語言程序的入口函數main函數調用了hal_entry函數。由于我們新建的工程是沒有選用RTOS的,因此,
    的頭像 發表于 07-25 15:34 ?1998次閱讀

    函數指針的六個常見應用場景

    函數指針在嵌入式開發中有著廣泛的應用,它讓代碼更加靈活,減少冗余,提高可擴展性。很多時候,我們需要根據不同的情況動態調用不同的函數,而函數指針正是實現這一需求的重要工具。本文將介紹六個
    的頭像 發表于 04-07 11:58 ?1480次閱讀
    <b class='flag-5'>函數</b>指針的六個常見應用場景

    詳解RTOS中的Hook函數

    Hook函數是RTOS中的一個關鍵特性,通過該函數,用戶可以增強對任務管理的控制,定義系統行為。
    的頭像 發表于 03-24 16:14 ?1083次閱讀

    解鎖TSMaster fifo函數:報文讀取的高效方法

    前言:TSMaster目前有兩種讀取報文的模式:回調函數模式和fifo模式。fifo函數是TSMaster近期新增的函數,本文將重點介紹fifo模塊。關于回調函數的使用方法可以參考幫助
    的頭像 發表于 03-14 20:04 ?1159次閱讀
    解鎖TSMaster fifo<b class='flag-5'>函數</b>:報文讀取的高效方法

    請問移植rtthread nano版時官網里面系統時鐘函數在哪里實現的?

    我在已有的華大HC32開發板的LED例程里我找不到官網移植教程里的這三個函數,文檔也沒說明這三個函數的移植步驟?到底在哪里找的?是rtthread里的實現還是需要用戶自己找函數
    發表于 03-10 06:16