亚洲精品一二区_国产黄色片网站_99久久久成人国产精品_蜜臀网_国产精品一区二区三区免费_成人av中文字幕_91精品国产欧美一区二区成人

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 嵌入式學(xué)習(xí)筆記:函數(shù)入門(mén)知識(shí)總結(jié)

嵌入式學(xué)習(xí)筆記:函數(shù)入門(mén)知識(shí)總結(jié) 時(shí)間:2018-09-13      來(lái)源:未知

函數(shù)的意義

函數(shù)是一段程序,可以完成一個(gè)功能,例如:printf

提高程序的通用性,減少重復(fù)的代碼(具有相似功能的代碼)

實(shí)現(xiàn)模塊化設(shè)計(jì)的基礎(chǔ)

1.2函數(shù)的分類(lèi)

main()函數(shù),每個(gè)程序都必須要實(shí)現(xiàn)的,程序從main()函數(shù)開(kāi)始執(zhí)行,從main()函數(shù)結(jié)束

庫(kù)函數(shù):由系統(tǒng)已經(jīng)實(shí)現(xiàn)的函數(shù),例如:printf

自定義函數(shù):用戶(hù)自行設(shè)計(jì)并實(shí)現(xiàn)

1.3函數(shù)的使用

以math(數(shù)學(xué)庫(kù))為例,用man math.h查看庫(kù)中函數(shù)

注意:必須有頭文件:#include

例子1:pow()

函數(shù)功能:計(jì)算x的y次方,可使用man pow可查看pow()函數(shù)的使用方法

函數(shù)模型:double pow(double x,double y)

提供的信息:需要的參數(shù),返回的結(jié)果的類(lèi)型

使用函數(shù)的語(yǔ)法:函數(shù)名(參數(shù)列表)

實(shí)際情況

例子2:sqrt()

函數(shù)的功能:計(jì)算一個(gè)數(shù)的平方根

函數(shù)原型:double sqrt() //

提供的信息:需要提供一個(gè)double類(lèi)型的參數(shù)

使用函數(shù)提供的參數(shù)可以是常量,變量,表達(dá)式

注意:使用數(shù)學(xué)庫(kù)在編譯時(shí)候必須使用 gcc select.c –lm

pow,sqrt為double型

補(bǔ)充:常見(jiàn)數(shù)學(xué)函數(shù)

1.4函數(shù)的執(zhí)行過(guò)程

一旦程序中包含其他函數(shù)的調(diào)用(使用),執(zhí)行到對(duì)應(yīng)的函數(shù)調(diào)用的語(yǔ)句時(shí),跳轉(zhuǎn)到對(duì)應(yīng)的函數(shù)執(zhí)行,執(zhí)行完畢后會(huì)返回調(diào)用的語(yǔ)句的下一條語(yǔ)句繼續(xù)執(zhí)行

具體實(shí)現(xiàn)過(guò)程:

1.5函數(shù)的定義

1.51函數(shù)的定義:函數(shù)的實(shí)現(xiàn),需要我們?cè)O(shè)計(jì)函數(shù)對(duì)應(yīng)的功能,參數(shù),以及返回值

1.52定義的語(yǔ)法:

類(lèi)型標(biāo)識(shí)符 函數(shù)名(形式參數(shù)類(lèi)型說(shuō)明列表)

{

函數(shù)體

}

注:類(lèi)型標(biāo)識(shí)符:說(shuō)明函數(shù)返回值的類(lèi)型

函數(shù)名:符合命令規(guī)則即可,函數(shù)入口地址

形式參數(shù)說(shuō)明列表:函數(shù)執(zhí)行時(shí)需要提供的參數(shù)

函數(shù)體:具體的功能實(shí)現(xiàn)

():函數(shù)的標(biāo)識(shí)

1.53設(shè)計(jì)過(guò)程:

(1)函數(shù)的原型設(shè)計(jì):函數(shù)的名字,參數(shù),返回值的類(lèi)型確定

注意:需要將函數(shù)的原型設(shè)計(jì)寫(xiě)在調(diào)用(使用)之前,為了編譯器對(duì)函數(shù)調(diào)用語(yǔ)句進(jìn)行語(yǔ)法檢查,

例如:int max(int x, int y);

注意:函數(shù)的聲明處需要加分號(hào)

(2)函數(shù)的函數(shù)體的設(shè)計(jì):函數(shù)的名字,參數(shù),返回值類(lèi)型的確定

函數(shù)具體功能的實(shí)現(xiàn)

注意:一個(gè)函數(shù)中,不能嵌套定義另外一個(gè)函數(shù),

完整實(shí)例:

1.6函數(shù)的形式參數(shù)

表示函數(shù)所需要的參數(shù)

形式參數(shù)寫(xiě)在函數(shù)定義與聲明中形式列表中

類(lèi)型標(biāo)識(shí)符 函數(shù)名(類(lèi)型1 參數(shù)名1,類(lèi)型2 參數(shù)名2…..)

每個(gè)形式參數(shù)都必須寫(xiě)參數(shù)名與類(lèi)型

正確寫(xiě)法:int add(int x,int y)

錯(cuò)誤寫(xiě)法:int add(int x,y)

形式參數(shù)一般每變量名

1.7函數(shù)的實(shí)際參數(shù)

表示函數(shù)提供的參數(shù)

實(shí)際參數(shù)是在函數(shù)調(diào)用時(shí)寫(xiě)在括號(hào)中的實(shí)際參數(shù)列表

函數(shù)名(實(shí)際參數(shù)1,實(shí)際參數(shù)2…..)

例如:add(3,4,5)

1.8值傳遞

將實(shí)際參數(shù)的值傳遞給形式參數(shù)

在傳遞值采用一一對(duì)應(yīng)的方式

如:形參1=實(shí)參1 形參2=實(shí)參2….

只能將實(shí)際參數(shù)的值傳遞給形式參數(shù),且只能單向傳遞

實(shí)際參數(shù)與形式參數(shù)之間,保持類(lèi)型、個(gè)數(shù)、順序一致

1.9無(wú)參函數(shù)

沒(méi)有形式參數(shù)的函數(shù),在形式參數(shù)類(lèi)表中使用void表示(標(biāo)準(zhǔn)規(guī)范)

注意:調(diào)用時(shí)候,括號(hào)中不需要寫(xiě)void

實(shí)例:

1.10函數(shù)的返回值

如果一個(gè)函數(shù)需要返回運(yùn)算結(jié)果,使用return關(guān)鍵字

return可以為變量或表達(dá)式或常量

函數(shù)允許沒(méi)有return,正對(duì)沒(méi)有返回值的函數(shù),不能return一個(gè)值,函數(shù)執(zhí)行完畢后,自動(dòng)返回

例如:

注意:return的值原則上需要與聲明的返回值的類(lèi)型保持一致

如果沒(méi)有返回值,就寫(xiě)void

 

補(bǔ)充:return的作用:1.返回一個(gè)值

終止函數(shù)的執(zhí)行,立即返回

1.11注意及補(bǔ)充

1.變量的作用域:表示一個(gè)變量的作用范圍

變量的生命周期:表示一個(gè)變量在內(nèi)存中存在的時(shí)間

局部變量:一般定義在函數(shù)的內(nèi)部(包括形式參數(shù))

作用域:一般從定義的位置開(kāi)始,到對(duì)應(yīng)的{}結(jié)束

生命周期:從定義的位置開(kāi)始,到超過(guò)作用域之后結(jié)束

從分配空間(定義時(shí))到釋放空間(超過(guò)作用域)的時(shí)間

全局變量:定義在函數(shù)外部

作用域:從定義的位置開(kāi)始,到整個(gè)源文件結(jié)束

生命周期:從定義的位置開(kāi)始,到整個(gè)程序執(zhí)行結(jié)束

補(bǔ)充:程序加載到內(nèi)存中之后,將數(shù)據(jù)分不同的類(lèi)型分開(kāi)存儲(chǔ),不同的區(qū)域存儲(chǔ)不同的類(lèi)型

棧區(qū):存儲(chǔ)局部變量

數(shù)據(jù)區(qū):存儲(chǔ)靜態(tài)變量(使用static int a)

作用:以提高局部變量的生命周期(從定義的位置開(kāi)始,一直到函數(shù)執(zhí)行結(jié)束)但是沒(méi)有改變作用域,且只會(huì)初始化一次,對(duì)應(yīng)的值一直存在

注意:函數(shù)的形式參數(shù)屬于局部變量,不同函數(shù)的形式參數(shù)即使同名,在內(nèi)存空間中是不同的

不同函數(shù)中使用相同名字的局部變量,在內(nèi)存中同樣擁有不同的存儲(chǔ)空間

形式參數(shù)不會(huì)影響實(shí)際參數(shù)

局部變量,靜態(tài)變量,全局變量都是根據(jù)作用域,生命周期來(lái)進(jìn)行區(qū)分

自動(dòng)變量(auto),靜態(tài)變量(static)根據(jù)存儲(chǔ)區(qū)域來(lái)進(jìn)行區(qū)分

默認(rèn)情況變量的存儲(chǔ)類(lèi)型為auto,屬于自動(dòng)局部變量,超過(guò)作用域,生命周期就結(jié)束

√符號(hào)常量:在c語(yǔ)言中使用#define關(guān)鍵字來(lái)定義,提高程序的通用性

使用:#define 符號(hào)標(biāo)識(shí)名 常量值(表達(dá)式)

#define SIZE 5

原理:在預(yù)編譯階段進(jìn)行符號(hào)標(biāo)識(shí)的替換,將程序所有引用的符號(hào)表示替換成后面的值

流程:源程序(test.c)--預(yù)編譯(處理預(yù)處理命令,以#開(kāi)頭)---編譯(c—cpu指令)---匯編---鏈接(test.0,ptintf.o)--可執(zhí)行文件

2. goto 語(yǔ)句:跳轉(zhuǎn)到指定的標(biāo)識(shí)符去執(zhí)行

例子:

3.技巧性:在ubuntu中ctrl+v進(jìn)行選中后,按=可對(duì)齊所選行列

4.應(yīng)用性:計(jì)算二維數(shù)組的行列和時(shí),可使用以下方法

5. bool 類(lèi)型:在c語(yǔ)言中用于表示真和假的類(lèi)型,在內(nèi)存中的值為 1 和 0

使用 true(1) 與 false(0)表示

使用方法:

① 定義頭文件:#include

② 使用函數(shù):

6技巧性:用于顯示重復(fù)的數(shù)字,字母等時(shí),要靈活使用數(shù)組下標(biāo)

具體案例:



 

 

上一篇:嵌入式學(xué)習(xí)筆記:二維數(shù)組定義與使用

下一篇:嵌入式學(xué)習(xí)筆記:指針和指針變量的區(qū)別(指針知識(shí)點(diǎn)大全)

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專(zhuān)線(xiàn):010-82525158 企業(yè)培訓(xùn)洽談專(zhuān)線(xiàn):010-82525379 院校合作洽談專(zhuān)線(xiàn):010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見(jiàn)科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部

主站蜘蛛池模板: 精品一区久久 | 精品在线免费观看视频 | 免费日批网站 | 欧美一卡二卡三卡 | 欧美精品一区二区三区视频 | 韩国伦理免费观看 | 人人色在线视频播放 | 国产欧美日韩精品第三区 | 精品卡卡一卡二 | 久久精品国产亚洲婷婷 | 精品三区 | youjizz欧美巨大 | 久久久久88色偷偷免费 | 久久久久久综合对白国产 | 99在线播放视频 | 色网站免费视频 | 久久免费99精品久久久久久 | 国产亚洲第一伦理第一区 | 青草草在线 | 97人摸人人澡人人人超一碰 | 久久精品2| 国产传媒在线播放 | 欧美性色生活片天天看99 | 九九热爱视频精品视频高清 | 日本zz00zz00另类视频 | 三级天堂 | 久久93精品国产91久久综合 | 久久99国产这里有精品视 | 久久婷婷婷 | 欧美香蕉人人人人人人爱 | 新97人人模人人爽人人喊 | 九九热免费观看 | 99热成人精品免费久久 | 久草新免费 | 国产区成人综合色在线 | 青草免费免费观看视频在线 | 日本免费黄色网址 | 日色视频| 女s调教女m | 久久噜噜 | 国产成人综合久久 |