色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

如何使用C語言回調函數降低程序耦合性呢?

STM32嵌入式開發 ? 來源:CSDN ? 2024-02-22 11:34 ? 次閱讀

一、前言

耦合性是程序結構中各個模塊之間相互關聯的度量。它取決于各個模塊之間接口的復雜程度、調用模塊的方式以及哪些信息通過接口。 編寫代碼有兩個核心點:隔離變化、降低復雜度,而解耦是達到這兩個目標的重要手段。

二、使用回調函數降低耦合

問題描述:

實現回家函數come_home,傳入出發的時間,打印回家的方式以及到家的時間,有兩種回家方式:開車、走路。其中開車需要1小時,走路需要3小時。

功能分析:

由于回家方式不同,所用時間不同,因此到家的時間不同,可以將come_home函數代碼分為變化部分以及不變部分,將變化部分寫在回調函數中,實現隔離變化的目的。

變化部分:

輸出回家方式,根據出發時間,計算到家時間。

不變部分:

輸出到家時間。

1、定義回調函數指針

typedef int (*on_arrival_t)(void* ctx, int departure_time);

2、編寫come_home函數

void come_home(int departure_time, on_arrival_t on_arrival, void* ctx)
{
 int arrival_time = on_arrival(ctx, departure_time); /* 變化部分:調用回調函數計算到家時間 */
 printf("arrival_time: %d
", arrival_time);   /* 不變部分:打印到家時間 */
}

3、實現具體的回調函數

/* 開車回家 */
int on_drive(void* ctx, int departure_time) {
 int  arrival_time = departure_time + 1; /* 計算開車回家時間 */
 printf("drive
");      /* 打印回家方式 */


 return arrival_time;
}


/* 走路回家 */
int on_walk(void* ctx, int departure_time) {
 int  arrival_time = departure_time + 3; /* 計算走路回家時間 */
 printf("walk
");      /* 打印回家方式 */


 return arrival_time;
}

4、main函數

int main(int argc, char* argv[])
{
 come_home(17, on_drive, NULL); /* 17點開車回家 */
 come_home(17, on_walk, NULL); /* 17點走路回家 */
 
 return 0;
}

5、輸出

98bf6b52-d132-11ee-a297-92fbcf53809c.png





審核編輯:劉清

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

    關注

    180

    文章

    7604

    瀏覽量

    136692
  • 回調函數
    +關注

    關注

    0

    文章

    87

    瀏覽量

    11554

原文標題:C語言回調函數:降低程序耦合性

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

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

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

    C語言使用回調函數模擬委托與反射

    函數C語言的核心概念。主調函數(caller)調用被調函數(callee)是一般的調用關系,如
    發表于 08-03 16:12 ?475次閱讀

    C 語言調函數詳解

    C 語言調函數詳解什么是調
    發表于 04-08 10:36

    c語言調函數的作用是什么,怎么使用

    知道怎么寫回調函數也根本就搞不懂它們在實際產品中也有什么用,什么時候用。所以這節課我們會以程序架構的需求為出發點,講解
    發表于 11-30 06:09

    C語言調函數學習

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

    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><b class='flag-5'>函數</b>設計

    C語言函數調函數

    來源:嵌入式客棧 1 什么是調函數?首先什么是調? 我的理解是:把一段可執行的代碼像參數傳
    的頭像 發表于 09-11 09:57 ?4128次閱讀

    c語言調函數的使用及實際作用詳解

    知道怎么寫回調函數也根本就搞不懂它們在實際產品中也有什么用,什么時候用。所以這節課我們會以程序架構的需求為出發點,講解
    發表于 11-20 19:51 ?13次下載
    <b class='flag-5'>c</b><b class='flag-5'>語言</b><b class='flag-5'>回</b><b class='flag-5'>調</b><b class='flag-5'>函數</b>的使用及實際作用詳解

    C語言使用回調函數模擬委托與反射

    函數C語言的核心概念。主調函數(caller)調用被調函數(callee)是一般的調用關系,如
    的頭像 發表于 03-14 10:19 ?1313次閱讀

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

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

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

    了解開發語言的朋友應該都會對調函數有所了解,在很多的程序開發語言中都能看到
    的頭像 發表于 04-10 15:08 ?1094次閱讀

    C語言技巧之調函數

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

    C語言|調函數的不同用法

    調函數是個高級操作技巧,也是日常項目中常常使用到的技能。之所以說調函數是個高級操作技巧,是因
    發表于 07-10 10:34 ?1292次閱讀

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

    調函數是一種特殊的函數,它作為參數傳遞給另一個函數,并在被調用函數執行完畢后被調用。
    發表于 03-12 11:46 ?2903次閱讀
    主站蜘蛛池模板: 日韩亚洲视频一区二区三区| 玖玖爱这里只有精品视频| 国产亚洲精品久久777777| 国产精品高清免费网站| 国产伊人自拍| 久久精品国产在热亚洲| 久久是热这里只有精品| 男女啪啪抽搐呻吟高潮动态图| 欧美一区二区三区免费播放| 日韩午夜影院| 亚洲国产精品无码中文字满 | 巨黄的肉辣文np| 内射少妇36P九色| 青青草原国产在线观看| 为什么丈夫插我我却喜欢被打着插| 亚洲精品成人AV在线观看爽翻 | 亚洲精品国产乱码AV在线观看| 亚洲午夜精品A片久久不卡蜜桃 | 战狼4在线观看完免费完整版 | www.青青草| 国产精品久久久久久久伊一| 久久AV亚洲精品一区无码网| 欧美日韩视频高清一区| 特黄AAAAAAA片免费视频| 亚洲一区二区三区免费看| 97影院理论午夜伦不卡偷 | 中国女人精69xxxxxx视频| 99久久免费精品| 国产精品高清在线观看地址| 黄色网址在线免费观看| 男人扒开添女人下部口述| 色婷婷综合久久久中文字幕| 亚洲精品久久久午夜福利电影网| 8090碰成年女人免费碰碰尤物| 前后灌满白浆护士| 无码射肉在线播放视频| 2022年国产精品久久久久| 国产精品99久久久精品无码| 伦理79电影网在线观看| 无码中文字幕av免费放| 91免费永久在线地址|