《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 其他 > 教學(xué):嵌入式中的合作開發(fā)——函數(shù)指針

教學(xué):嵌入式中的合作開發(fā)——函數(shù)指針

2022-09-30
來源:碼農(nóng)愛學(xué)習(xí)
關(guān)鍵詞: 函數(shù)指針 嵌入式

  在嵌入式軟件開發(fā)中,一個(gè)項(xiàng)目往往需要多人協(xié)作完成。

  比如A需要完成項(xiàng)目的整體邏輯功能,而整個(gè)邏輯功能包含許多具體的小功能,但A又沒有時(shí)間或能力來實(shí)現(xiàn)這些小功能,這時(shí)可以讓B來協(xié)助實(shí)現(xiàn)函數(shù)內(nèi)部的功能。

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

  下面來講一下具體實(shí)現(xiàn):

  聲明函數(shù)指針-A負(fù)責(zé)

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

  //a中聲明一個(gè)指針函數(shù),其函數(shù)內(nèi)部的功能需要另一個(gè)人b來完成

  int (*mysum)(int, int)=0;

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

  函數(shù)指針賦值-A負(fù)責(zé)

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

  //初始化指針函數(shù),傳入 b寫的函數(shù)的函數(shù)名,

  //通過函數(shù)指針賦值,main中聲明的函數(shù),就可以使用b寫的函數(shù)功能了

  int init_mysum_func(int(*func_handle)(int,int))

  {

  mysum = func_handle;

  return 0;

  }

  函數(shù)的具體實(shí)現(xiàn)-B負(fù)責(zé)

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

  int sum_by_b(int a, int b)

  {

  return a+b;

  }

  項(xiàng)目整理邏輯-A負(fù)責(zé)

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

  int main()

  {

  int res = 0;

  init_mysum_func(sum_by_b);//初始化指針函數(shù), 將 b完成的函數(shù)功能賦予a聲明的函數(shù)

  res = mysum(1,2);//使用a聲明的求和函數(shù)進(jìn)行求和,其內(nèi)部實(shí)現(xiàn)其實(shí)的b完成的

  printf(“mysum(1,2) = %d”,res);

  return 0;

  }

  測試結(jié)果:

  mysum(1,2) = 3

  --------------------------------

  Process exited after 0.007424 seconds with return value 0

  請按任意鍵繼續(xù)。 . .

  附:整個(gè)測試代碼

  b.h

  int sum_by_b(int a, int b)

  {

  return a+b;

  }

  a.c

  #include

  #include

  #include “b.h”

  //a中聲明一個(gè)指針函數(shù),其函數(shù)內(nèi)部的功能需要另一個(gè)人b來完成

  int (*mysum)(int, int)=0;

  //初始化指針函數(shù),傳入 b寫的函數(shù)的函數(shù)名,

  //通過函數(shù)指針賦值,main中聲明的函數(shù),就可以使用b寫的函數(shù)功能了

  int init_mysum_func(int(*func_handle)(int,int))

  {

  mysum = func_handle;

  return 0;

  }

  int main()

  {

  int res = 0;

  init_mysum_func(sum_by_b);//初始化指針函數(shù), 將 b完成的函數(shù)功能賦予a聲明的函數(shù)

  res = mysum(1,2);//使用a聲明的求和函數(shù)進(jìn)行求和,其內(nèi)部實(shí)現(xiàn)其實(shí)的b完成的

  printf(“mysum(1,2) = %d”,res);

  return 0;

  }



更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<< 

mmexport1621241704608.jpg

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲精品影视| 欧美噜噜久久久xxx| 一本色道久久综合精品竹菊| 欧美一级久久| 亚洲欧美国产制服动漫| 99v久久综合狠狠综合久久| 最新中文字幕亚洲| 亚洲国产婷婷综合在线精品| 一区二区三区在线高清| 黄色成人av网| 一区二区视频免费完整版观看| 久久国产精品久久久久久久久久| 国产欧美一区二区三区视频| 国产精品草草| 欧美日韩视频一区二区| 欧美日产国产成人免费图片| 欧美激情视频一区二区三区在线播放| 亚洲在线观看免费| 亚洲婷婷国产精品电影人久久| 午夜精品视频一区| 亚洲永久免费精品| 亚洲欧美第一页| 午夜精品视频| 久久国产精品黑丝| 亚洲国产精品ⅴa在线观看| 久久精品国产一区二区三| 先锋a资源在线看亚洲| 欧美有码在线视频| 亚洲国产日韩欧美在线图片| 亚洲精品国精品久久99热一| 日韩午夜电影| 亚洲一区www| 香港久久久电影| 久久不射2019中文字幕| 老司机67194精品线观看| 欧美大片在线观看一区二区| 欧美精品激情| 国产精品久久久对白| 国产视频丨精品|在线观看| 国内精品视频在线观看| 亚洲电影在线免费观看| 99re6这里只有精品| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产成人精品女人久久久| 国产精品麻豆欧美日韩ww| 国产精品影院在线观看| 狠狠色狠狠色综合日日tαg| 91久久精品国产91久久| 一本不卡影院| 欧美亚洲在线| 亚洲日本欧美在线| 亚洲一区视频在线| 久久久精品日韩欧美| 欧美mv日韩mv国产网站app| 欧美日韩在线视频一区二区| 国产女主播视频一区二区| 在线成人黄色| 一区二区精品在线| 篠田优中文在线播放第一区| 亚洲激情二区| 亚洲欧美日韩国产精品| 久久综合久色欧美综合狠狠| 欧美日本一区二区三区| 国产午夜精品久久久久久久| 亚洲国产精品一区| 亚洲欧美日本国产专区一区| 亚洲精品1区2区| 亚洲欧美在线看| 免费久久精品视频| 国产精品老牛| 在线免费观看日韩欧美| 亚洲女同性videos| 亚洲最新视频在线| 久久久久久午夜| 欧美日韩综合另类| 狠狠色狠狠色综合系列| 中日韩在线视频| 亚洲高清自拍| 亚洲综合电影一区二区三区| 久久综合激情| 国产精品剧情在线亚洲| 亚洲级视频在线观看免费1级| 亚洲黄色成人网| 亚洲欧美另类久久久精品2019| 亚洲专区一区二区三区| 亚洲久久在线| 久久久久久久久久久久久久一区| 欧美尤物巨大精品爽| 欧美久久久久久蜜桃| 国产日韩在线不卡| 一本色道婷婷久久欧美| 亚洲精品一区二区在线观看| 久久九九国产精品| 国产精品入口尤物| 亚洲美女啪啪| 亚洲激情在线视频| 久久精品中文字幕一区| 国产精品久线观看视频| 亚洲免费成人| 亚洲精品老司机| 裸体丰满少妇做受久久99精品| 欧美精品午夜| 在线观看久久av| 欧美一区中文字幕| 亚洲欧美在线aaa| 欧美日韩精品是欧美日韩精品| 国产精品美腿一区在线看| 亚洲激情av| 亚洲国产另类久久久精品极度| 亚洲免费成人av电影| 久久婷婷人人澡人人喊人人爽| 免费91麻豆精品国产自产在线观看| 久久亚洲国产精品日日av夜夜| 美国三级日本三级久久99| 国产区日韩欧美| 亚洲网站视频福利| 亚洲一区精彩视频| 欧美色视频一区| 99国产一区| 999在线观看精品免费不卡网站| 亚洲综合色丁香婷婷六月图片| 久久精品综合| 国产亚洲欧美另类中文| 亚洲综合成人在线| 亚洲欧美日本国产有色| 国产精品欧美日韩一区| 亚洲一区欧美二区| 性色一区二区三区| 国产喷白浆一区二区三区| 性一交一乱一区二区洋洋av| 久久精品夜色噜噜亚洲aⅴ| 国产一区二区三区视频在线观看 | 欧美日韩在线观看一区二区三区| 国产精品免费一区豆花| 99这里只有精品| 亚洲欧美另类中文字幕| 国产精品一区二区在线观看不卡 | 国产片一区二区| 性18欧美另类| 久久久久综合| 亚洲国产二区| 一区二区三区四区蜜桃| 欧美色视频一区| 午夜精品久久久久久久久久久久| 一本大道久久a久久综合婷婷| 久久精品视频亚洲| 狠狠色狠狠色综合日日小说| 亚洲第一精品久久忘忧草社区| 午夜精品久久久久久99热软件| 欧美jizzhd精品欧美巨大免费| 国产精品伊人日日| 欧美在线精品一区| 欧美不卡激情三级在线观看| 99精品免费网| 久久精选视频| 91久久精品国产91性色| 亚洲影院免费| 精品1区2区3区4区| 9l国产精品久久久久麻豆| 欧美日韩一区二区三区高清| 亚洲自拍偷拍福利| 久久综合九色综合久99| 日韩午夜在线电影| 欧美一区二区私人影院日本| 尤物网精品视频| 亚洲网站视频福利| 国产午夜精品视频免费不卡69堂| 亚洲午夜性刺激影院| 久久精品国产91精品亚洲| 亚洲高清网站| 亚洲一区二区免费看| 国产自产2019最新不卡| 中文成人激情娱乐网| 韩日在线一区| 亚洲视频专区在线| 黄色精品一区| 亚洲欧美日韩国产一区二区三区| 欧美日韩大片| 亚洲一区三区在线观看| 麻豆精品在线观看| 亚洲视频免费在线| 免费成人av在线看| 亚洲一区二区三区四区五区黄| 午夜在线视频一区二区区别| 合欧美一区二区三区| 在线视频亚洲欧美| 好吊色欧美一区二区三区四区 | 中日韩视频在线观看| 国产毛片一区| 99在线精品免费视频九九视| 国产中文一区二区| 亚洲尤物在线视频观看| 亚洲高清视频一区二区| 久久电影一区| aa成人免费视频| 免费亚洲电影在线| 欧美一二区视频| 欧美色精品在线视频| 亚洲人妖在线| 国产一区白浆|