在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

函數指針與回調函數

嵌入式應用開發 ? 來源:嵌入式應用開發 ? 作者:嵌入式應用開發 ? 2022-09-09 08:55 ? 次閱讀

函數指針:

linux驅動面向對象編程思想中用的最多,利用函數指針來實現封裝,下面以一個簡單的例子說明:

#include 

typedef struct TFT_DISPLAY
{
    int   pix_width;
    int   pix_height;
    int   color_width;
    void (*init)(void);
    void (*fill_screen)(int color);
    void (*tft_test)(void);

}tft_display;

static void init(void)
{
    printf("the display is initialed\n");
}

static void fill_screen(int color)
{
    printf("the display screen set 0x%x\n",color);

}

tft_display mydisplay=
{
    .pix_width=320,
    .pix_height=240,
    .color_width=24,
    .init=init,
    .fill_screen=fill_screen,
};

int main(int argc, char **argv)
{

    mydisplay.init();
    mydisplay.fill_screen(0xfff);
    return 0;
}

上面的例子將一個tft_display封裝成一個對象,上面的結構體成員中最后一個沒有初始化,這在Linux中用的非常多,最常見的是file_operations結構體,該結構體一般來說只需要初始化常見的函數,不需要全部初始化。上面代碼中采用的結構體初始化方式也是在Linux中最常用的一種方式,這種方式的好處在于無需按照結構體的順序一對一。

回調函數:

有時候會遇到這樣一種情況,當上層人員將一個功能交給下層程序員完成時,上層程序員和下層程序員同步工作,這個時候該功能函數并未完成,這個時候上層程序員可以定義一個API來交給下層程序員,而上層程序員只要關心該API就可以了而無需關心具體實現,具體實現交給下層程序員完成即可(這里的上層和下層程序員不指等級關系,而是項目的分工關系)。這種情況下就會用到回調函數(Callback Function),現在假設程序員A需要一個FFT算法,這個時候程序員A將FFT算法交給程序員B來完成,現在來讓實現這個過程:

int  InputData[100]={0};
int OutputData[100]={0};

void FFT_Function(int *inputData,int *outputData,int num)
{
    while(num--)
    {

    }
}

void TaskA_CallBack(void (*fft)(int*,int*,int))
{

    (*fft)(InputData,OutputData,100);
}

int main(int argc, char **argv)
{

    TaskA_CallBack(FFT_Function);
    return 0;
}

上面的代碼中TaskA_CallBack是回調函數,該函數的形參為一個函數指針,而FFT_Function是一個被調用函數。可以看到回調函數中申明的函數指針必須和被調用函數的類型完全相同。

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

    關注

    87

    文章

    11420

    瀏覽量

    212368
  • 回調函數
    +關注

    關注

    0

    文章

    88

    瀏覽量

    11792
  • 函數指針
    +關注

    關注

    2

    文章

    57

    瀏覽量

    3908
收藏 人收藏

    評論

    相關推薦

    一文詳解C語言函數指針調函數

    在講調函數之前,我們需要了解函數指針
    發表于 10-19 09:34 ?914次閱讀

    C語言里面的函數指針調函數

    在講調函數之前,我們需要了解函數指針
    發表于 12-13 10:28 ?760次閱讀

    一文詳解函數指針調函數

    函數指針是指向函數指針變量。它允許我們將函數作為參數傳遞給其他函數或將
    發表于 08-22 10:36 ?621次閱讀

    函數指針指針函數調函數總結分享!

    看藍牙協議棧的時候遇到了調函數,之前就沒有用過,函數指針函數
    發表于 10-15 19:23

    C語言調函數學習

    指針的應用是C語言編程的精髓所在,而回調函數就是C語言里面對函數指針的高級應用。簡而言之,
    發表于 05-27 09:44 ?7268次閱讀

    基于Qt組件的俄羅斯方塊設計

    函數指針調函數響應觸發的每個動作。而在QT中信號和槽取代了函數
    發表于 11-15 15:16 ?9次下載

    LabWindows/CVI 程序 調函數設計

    調函數是系統框架設計中非常重要的一種手段,所謂調函數(callback )是指一個通過
    發表于 05-03 16:54 ?1.1w次閱讀
    LabWindows/CVI 程序 <b class='flag-5'>回</b><b class='flag-5'>調</b><b class='flag-5'>函數</b>設計

    C語言函數調函數

    ,如果過后再執行,則稱之為異步調調函數就是一個通過函數
    的頭像 發表于 09-11 09:57 ?4312次閱讀

    詳解調函數的概念及使用步驟

    調函數就是一個被作為參數傳遞的函數。在C語言中,調函數
    的頭像 發表于 05-26 15:20 ?4284次閱讀

    函數指針調函數的使用方法

    了解開發語言的朋友應該都會對調函數有所了解,在很多的程序開發語言中都能看到調的身影。很多場景下,當某個條件成立以后我們希望代碼執行某些指
    的頭像 發表于 04-10 15:08 ?1313次閱讀

    嵌入式函數調注冊機制的實現

    嵌入式函數調注冊機制是一種常用的解耦技術,它通過在應用程序中注冊調函數的方式來實現模塊之間的通信,從而使系統更加靈活、可擴展和易于維護。
    的頭像 發表于 04-13 15:52 ?1613次閱讀

    C語言技巧之調函數

    在講調函數之前,我們需要了解函數指針
    的頭像 發表于 04-18 11:50 ?975次閱讀

    C++函數指針調函數詳解

    指針是一個變量,是用來指向內存地址。
    發表于 08-21 15:07 ?1476次閱讀
    C++<b class='flag-5'>函數</b><b class='flag-5'>指針</b>和<b class='flag-5'>回</b><b class='flag-5'>調</b><b class='flag-5'>函數</b>詳解

    函數指針調函數的應用實例

    通常我們說的指針變量是指向一個整型、字符型或數組等變量,而函數指針是指向函數函數指針
    的頭像 發表于 03-07 11:13 ?533次閱讀
    <b class='flag-5'>函數</b><b class='flag-5'>指針</b>與<b class='flag-5'>回</b><b class='flag-5'>調</b><b class='flag-5'>函數</b>的應用實例

    調函數(callback)是什么?調函數的實現方法

    調函數是一種特殊的函數,它作為參數傳遞給另一個函數,并在被調用函數執行完畢后被調用。
    發表于 03-12 11:46 ?3620次閱讀
    主站蜘蛛池模板: 爱爱小视频免费看 | 六月丁香激情 | 男人天堂网在线视频 | 日本精品视频四虎在线观看 | 2019国产情侣 | 黄www片| 国产毛片精品 | 人人搞人人爱 | 久久精品国产夜色 | 久久精品看片 | 天天色综合1 | 亚洲精品视频在线看 | 国产激情电影综合在线看 | 日本一区免费在线观看 | 午夜在线观看免费高清在线播放 | 国产精品伦理一区二区三区 | 性生交酡 | 性欧美丰满xxxx性久久久 | 五月婷婷久| 国产特级毛片 | 插综合网 | 国产盗摄女子私密保健视频 | 日韩在线视频免费观看 | 911精品国产91久久久久 | 最近最新免费视频 | www.天天干 | 色777777女人色 | 色在线国产| 亚洲欧美性另类春色 | 好男人www社区影视在线 | 一级视频免费观看 | 素股中文字幕 | 视频免费播放 | 精品色| you ji z z日本人在线观看 | 777kkk亚洲综合欧美色老头 | 色丁香在线观看 | 加勒比啪啪| 校园激情综合网 | 天天天天添天天拍天天谢 | 天天操免费视频 |