最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

嵌入式中的合作開發(fā)--函數(shù)指針

2022-06-07 12:01 作者:大方老師單片機(jī)課堂  | 我要投稿

嵌入式中的合作開發(fā)--函數(shù)指針

\\\插播一條:文章末尾有驚喜~///

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

A須要完成項目標(biāo)整體邏輯功能,而整個邏輯功能包含許多詳細(xì)的小功能,A又沒有時長或才能來實現(xiàn)這些小功能,這時能夠B來協(xié)助實現(xiàn)函數(shù)內(nèi)部的功能。

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

下面來講一下詳細(xì)實現(xiàn):

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

A須要一個求和功能的函數(shù),但他沒時長寫,他能夠自己先聲明一個函數(shù)指針:

//a中聲明一個指針函數(shù),其函數(shù)內(nèi)部的功能須要另一個b來完 int (*mysum)(int, int)=0;

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

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

這一步相當(dāng)于函數(shù)指針初始化,也相當(dāng)于函數(shù)注冊,就是A聲明的函數(shù)指針,通過指針賦值的方式,來獲B實現(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ù)的詳細(xì)實現(xiàn)-B負(fù)責(zé)

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

int sum_by_b(int a, int b){

return a+b;}

項目整理邏-A負(fù)責(zé)

項目邏輯很簡略,就是1+2的值,這A在使用自己聲明mysum之前,初始化(注冊)一下該函數(shù)(B寫的函數(shù)sum_by_bA寫的殼mysum),然后就能夠使用了,使用實例如下:

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)部實現(xiàn)其實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ù). . .

附:整個測試代碼

b.h

int sum_by_b(int a, int b)

{

return a+b;

}

a.c

#include #include #include "b.h"//a中聲明一個指針函數(shù),其函數(shù)內(nèi)部的功能須要另一個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)部實現(xiàn)其實b完成

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

return 0;}

三種必需掌握的嵌入式開發(fā)程序架構(gòu)!

在嵌入式軟件開發(fā),包括單片機(jī)開發(fā)中,軟件架構(gòu)對于開發(fā)人員是一個必需仔細(xì)考慮的問題。軟件架構(gòu)對于系統(tǒng)整體的穩(wěn)定性和可靠性是非常重要的,一個適宜的軟件架構(gòu)不僅構(gòu)造清晰,并且便于開發(fā)?

信盈達(dá)嵌入式

嵌入C語言的高級使用(全網(wǎng)最詳細(xì))

PlayCodes

嵌入式開發(fā)中的一些代碼規(guī)范和格調(diào)

奔騰的心發(fā)表于嵌入式那...

stm32項目模板示例

奔騰的心

2節(jié):我眼中進(jìn)修單片機(jī)的四個階段

教你單片機(jī)入門根2講:

第一階段:學(xué)C語言的常用語法,熟51單片機(jī)開發(fā)平臺軟keil的操作,了解單片機(jī)的大略原理特性,能讀懂按鍵,數(shù)碼管,跑馬燈,串口的簡略程序,能熟悉幾個常用的外圍芯片驅(qū)動。網(wǎng)上這方面優(yōu)秀的教程很多,我正在寫的這個連載《從業(yè)十年,教你單片機(jī)入門根底》也是屬于這類入門教程之一。

第二階段:我認(rèn)為這個階段是四個階段中最重要的階段。很多初學(xué)者完成了第一階段的進(jìn)修,真正去面對一個小項目標(biāo)時候,還是沒從下手。他們不知道按鍵,顯示,通訊,應(yīng)用程序之間是如何關(guān)聯(lián)起來的,他們一旦遇到多任務(wù)項目標(biāo)時候不知道如何并行處理,他們最缺少的是程序的框架思維。網(wǎng)上有很多熱心牛人分享的程序框架思想,都值得大家進(jìn)修和借鑒。我平時做項目是用狀態(tài)機(jī)的思維,就是switch語句實現(xiàn)多任務(wù)的切換,再外加一個定時中斷產(chǎn)生不同的時長計時,有興趣的朋友能夠看看我去年在本論壇寫的連載貼子《從業(yè)將近十年,手把手教你單片機(jī)程序框架》。

第三階段:大家在做項目時,除了寫單片機(jī)的軟件,還不可避免的要跟整個電路的硬件打交道,掌握一些常用的硬件電路知識就顯得尤其重要。電阻,電容,電感,二極管,三極管,光藕的應(yīng)用,電壓差和參照地的關(guān)系,兩系統(tǒng)通信時需不須要共地的理由,隔離與非隔離的本質(zhì),常見的變壓整流電路,常見的外圍驅(qū)動電路等等。這方面優(yōu)秀的電子根底教程很多,大家應(yīng)該主動找這方面的資料來進(jìn)修進(jìn)修,我過一兩年后也打算寫寫這方面的連載貼子《從業(yè)十年,單片機(jī)常用硬件知識講解》。

第四階段:有了前面三個階段的主動進(jìn)修和積攢,就能夠去做項目了,在項目中進(jìn)修。依據(jù)工作的須要來選擇進(jìn)修哪個廠家的單片機(jī),假PIC,AVR,stm32等單片機(jī)廠;依據(jù)工作的須要來決定是否須要進(jìn)修匯編語言,有一些臺灣廠家的單片機(jī)并不能C語言開發(fā),只能用匯;依據(jù)工作的須要來深層鉆研相關(guān)行業(yè)所需的硬件電路知;依據(jù)工作的須要來進(jìn)修相關(guān)的外圍芯片驅(qū)動程序。

延展:

PCB電路設(shè)計PADS_LOGIC原理圖設(shè)計

STM32中用到了一些重要C語言知識點,匯總!

前言一位初學(xué)單片機(jī)的小搭檔讓我舉C語言書籍,由C語言根底比較差,想C語言重新學(xué)一遍,再去學(xué)單片機(jī),我以前剛學(xué)單片機(jī)的時候也有這樣子的想法。其C語言是?

嵌入式大雜燴

半個月進(jìn)修單片機(jī)的知識總結(jié)

一、前期的最根底的準(zhǔn)1.一塊單片機(jī)開發(fā)板(價格60元左右 2.一臺電 3.相應(yīng)的軟 4.具有一定C語言根底。在目前的進(jìn)修中還未遇C語言指針的應(yīng)用,所以這一點C語言的要求其實?

HouEn

十天學(xué)會單片機(jī)可能嗎?單片機(jī)入門須要多久?

幾年前,我是通過郭教師的十天學(xué)會單片機(jī)教程和配套開發(fā)板入門單片機(jī)的。最近被學(xué)員問到比較多的問題就是,單片機(jī)的進(jìn)修周期大略要多久今天在這里統(tǒng)一答復(fù)下。這個主要是要看學(xué)到什?

沒際單片機(jī)

單片機(jī)編程入門根底知(新手必)

單片機(jī)不是一門技術(shù),而是一個工具。對于工具,我們的目標(biāo)是會熟練地使用它假如你看懂這句話,會少走很多彎路。下面我來講一下使用這個工具時,會波及到的一些知識點。

彩蛋:最近有同學(xué)跟我要單片機(jī)的資料,我特意花幾個月時間,總結(jié)了我10年產(chǎn)品研發(fā)經(jīng)驗,資料包幾乎覆蓋C語言、單片機(jī)、模電數(shù)電、原理圖PCB設(shè)計、單片機(jī)高級編程等等,非常適合初學(xué)者入門和進(jìn)階。除此以外,再含淚分享我壓箱底22個熱門開源項目,包含源+原理+PCB+說明文檔,不是市面上打包賣的那種課程,我認(rèn)為教程多未必是好事,10年前我自學(xué)快,除了自身執(zhí)行力以外,還有就是教程少。不要害羞做伸手黨,等你一個小紅點。后期我也會組建一些純技術(shù)交流的小圈子,讓大家能認(rèn)識更多的大佬,有個好的圈子,你對行業(yè)的認(rèn)知一定是最前沿的。


嵌入式中的合作開發(fā)--函數(shù)指針的評論 (共 條)

分享到微博請遵守國家法律
太康县| 磴口县| 墨竹工卡县| 玉溪市| 烟台市| 安吉县| 湖南省| 炉霍县| 永仁县| 阿坝县| 宁德市| 平昌县| 偃师市| 西丰县| 吐鲁番市| 湾仔区| 丘北县| 黄石市| 栖霞市| 筠连县| 广饶县| 蒙城县| 清流县| 长寿区| 松江区| 突泉县| 安顺市| 犍为县| 博爱县| 玉门市| 彭泽县| 峡江县| 依兰县| 历史| 临沭县| 永宁县| 宝山区| 扎鲁特旗| 汉沽区| 兰西县| 沙田区|