久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 嵌(qian)入(ru)(ru)式(shi)學(xue)習筆記(ji):函數入(ru)(ru)門知(zhi)識總(zong)結(jie)

嵌入式學習筆記(ji):函數入門知識總結(jie) 時間:2018-09-13      來源:未知

函數的意義

函數(shu)是一段程序(xu),可(ke)以完(wan)成一個(ge)功能(neng),例(li)如:printf

提高(gao)程(cheng)序(xu)的(de)通(tong)用性,減少重復的(de)代碼(ma)(具有(you)相似(si)功能的(de)代碼(ma))

實現(xian)模(mo)塊化設計的基礎

1.2函(han)數的(de)分類

main()函數(shu)(shu)(shu),每個程序都必須要實現的(de),程序從main()函數(shu)(shu)(shu)開始執行,從main()函數(shu)(shu)(shu)結束

 庫函數:由系(xi)統(tong)已經(jing)實(shi)現(xian)的函數,例如:printf

自定義函數:用戶自行(xing)設計(ji)并實現

1.3函數的使用(yong)

以math(數(shu)學庫(ku))為例(li),用man math.h查看庫(ku)中(zhong)函數(shu)

注(zhu)意:必須有頭文件:#include

例子1:pow()

函數功能:計算x的(de)y次方,可(ke)使(shi)用man pow可(ke)查(cha)看pow()函數的(de)使(shi)用方法

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

提(ti)供的(de)信息:需要(yao)的(de)參(can)數(shu),返回的(de)結果的(de)類型(xing)

使(shi)用(yong)函數的(de)語法:函數名(參數列表)

實際情況

例子2:sqrt()

函數的功能:計(ji)算一個(ge)數的平方根

函數原型(xing):double sqrt() //

提(ti)供的信(xin)息(xi):需要提(ti)供一(yi)個double類型的參數

使(shi)用函數提(ti)供的(de)參數可以是(shi)常量,變量,表達式

注意:使用(yong)數學庫(ku)在編(bian)譯時候(hou)必須使用(yong) gcc select.c –lm

pow,sqrt為double型

補充:常見數學函數

1.4函數的執行過(guo)程

一旦程序中(zhong)包含其(qi)他函數(shu)的調用(yong)(使用(yong)),執行(xing)到對應(ying)的函數(shu)調用(yong)的語(yu)(yu)句時(shi),跳轉(zhuan)到對應(ying)的函數(shu)執行(xing),執行(xing)完(wan)畢(bi)后會返回調用(yong)的語(yu)(yu)句的下一條語(yu)(yu)句繼續執行(xing)

具(ju)體實現過程(cheng):

1.5函數的定義

1.51函數的(de)定義:函數的(de)實現,需要我們(men)設計(ji)函數對(dui)應(ying)的(de)功能,參數,以及返回值

1.52定義的語法:

類型(xing)(xing)標識(shi)符 函數名(形(xing)式參(can)數類型(xing)(xing)說明列表)

{

函數體

}

注:類型標識符:說(shuo)明函數返回(hui)值(zhi)的類型

函數名:符合命(ming)令(ling)規則即可,函數入口地址

形式參數(shu)說明列表:函(han)數(shu)執行時需要提供的參數(shu)

函數體:具體的(de)功(gong)能(neng)實現(xian)

():函數的標識

1.53設計(ji)過程(cheng):

(1)函數的(de)(de)原型設計:函數的(de)(de)名字(zi),參數,返回值(zhi)的(de)(de)類(lei)型確定

 注意:需要將函(han)數(shu)的原型設計寫在調用(使用)之前,為(wei)了編譯器對函(han)數(shu)調用語句(ju)進行語法(fa)檢(jian)查,

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

注意:函數(shu)的聲明處(chu)需要加分號

(2)函數(shu)(shu)的函數(shu)(shu)體的設計:函數(shu)(shu)的名(ming)字(zi),參數(shu)(shu),返回(hui)值類型的確定

函(han)數具體功(gong)能的實現

注(zhu)意:一個函(han)數(shu)中,不能嵌(qian)套定(ding)義另外一個函(han)數(shu),

完整實例:

1.6函數的形式參數

表(biao)示函數所需要的參數

形式(shi)參數寫在函數定義與聲(sheng)明中形式(shi)列表中

類型標(biao)識(shi)符 函數名(類型1 參數名1,類型2 參數名2…..)

每個形式參數(shu)都必須寫(xie)參數(shu)名與類型

正確寫(xie)法(fa):int add(int x,int y)

錯誤寫法:int add(int x,y)

形式參數一般每變量名

1.7函(han)數的實際參數

表示函數提供的(de)參數

實際參數是在(zai)函數調用時寫(xie)在(zai)括號中(zhong)的實際參數列(lie)表(biao)

函數名(實際參(can)數1,實際參(can)數2…..)

例(li)如:add(3,4,5)

1.8值(zhi)傳(chuan)遞

將實際參數(shu)(shu)的值傳(chuan)遞(di)給形(xing)式參數(shu)(shu)

在傳遞值采用一一對(dui)應的方(fang)式

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

只能將實際(ji)參(can)數的值傳(chuan)遞給形式參(can)數,且只能單(dan)向傳(chuan)遞

實際參數與形式參數之間(jian),保持類(lei)型(xing)、個數、順序一(yi)致

1.9無參函(han)數

沒有(you)形式參數(shu)的函數(shu),在形式參數(shu)類表中使用(yong)void表示(標(biao)準規范)

注意:調用時候,括號中不需要寫void

實例:

1.10函(han)數的返回值

如果一個(ge)函數需要返回運算結果,使用return關鍵字

return可(ke)以(yi)為變量或表(biao)達式或常量

函數允(yun)許沒有(you)return,正對沒有(you)返回值的(de)函數,不能(neng)return一個值,函數執(zhi)行完畢后(hou),自(zi)動返回

例如:

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

如果(guo)沒(mei)有(you)返(fan)回值,就寫void

 

補充:return的作(zuo)用:1.返回(hui)一個值(zhi)

終止(zhi)函數的執行,立即返回

1.11注意及補充

1.變量(liang)的作(zuo)用(yong)域(yu):表(biao)示一個(ge)變量(liang)的作(zuo)用(yong)范圍(wei)

變(bian)量的生命周期:表示(shi)一個(ge)變(bian)量在內存(cun)中存(cun)在的時(shi)間(jian)

局部變量:一般定(ding)義在函數的內部(包(bao)括形式參數)

作(zuo)用域(yu):一(yi)般從定(ding)義的位置開始(shi),到對(dui)應(ying)的{}結(jie)束

生命周期:從定義的位(wei)置開(kai)始(shi),到(dao)超過(guo)作(zuo)用域之后(hou)結束(shu)

從分配(pei)空間(定義時)到釋放空間(超(chao)過作用域)的時間

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

作用域(yu):從定義的位置(zhi)開始(shi),到整個源文件結(jie)束(shu)

生命周期:從(cong)定義的位置(zhi)開始,到整(zheng)個程序執行結束

補充:程(cheng)序(xu)加載到(dao)內存(cun)(cun)中(zhong)之后,將數據分不(bu)(bu)同的類型(xing)(xing)分開存(cun)(cun)儲(chu),不(bu)(bu)同的區域存(cun)(cun)儲(chu)不(bu)(bu)同的類型(xing)(xing)

棧區(qu):存儲局部(bu)變量

數據區:存儲靜態變(bian)量(使(shi)用(yong)static int a)

作用(yong)(yong):以(yi)提高局部變(bian)量(liang)的(de)(de)生命(ming)周期(qi)(從(cong)定義的(de)(de)位置開(kai)始(shi),一直到(dao)函數執行(xing)結束)但(dan)是沒(mei)有改變(bian)作用(yong)(yong)域,且(qie)只會初(chu)始(shi)化一次,對應的(de)(de)值(zhi)一直存在

注意:函(han)數(shu)(shu)的形式參數(shu)(shu)屬于(yu)局部變(bian)量,不同(tong)函(han)數(shu)(shu)的形式參數(shu)(shu)即使同(tong)名,在內存(cun)空間中是(shi)不同(tong)的

不(bu)同函(han)數中使(shi)用相同名字的(de)局部變量(liang),在內(nei)存中同樣擁有不(bu)同的(de)存儲空(kong)間

形式參數(shu)不會(hui)影(ying)響實際(ji)參數(shu)

局(ju)部變量(liang),靜態變量(liang),全局(ju)變量(liang)都是根據作(zuo)用域,生命周期來進(jin)行區分

自(zi)動變量(auto),靜態變量(static)根據存儲區域來進行區分

默(mo)認情(qing)況變(bian)(bian)量的(de)存儲類型為auto,屬于自動(dong)局部變(bian)(bian)量,超過作(zuo)用域,生命周期就(jiu)結束

 √符號常量:在(zai)c語言中使用#define關(guan)鍵字來(lai)定義,提高(gao)程序的通用性

使用:#define 符號標(biao)識名 常量值(表達式)

#define SIZE 5

原理:在預編譯(yi)階段進行(xing)符(fu)號標識的替換(huan),將程序所有引用的符(fu)號表示替換(huan)成后面的值

流程(cheng):源程(cheng)序(test.c)--預編(bian)(bian)(bian)譯(處(chu)理(li)預處(chu)理(li)命令,以(yi)#開頭)---編(bian)(bian)(bian)譯(c—cpu指令)---匯(hui)編(bian)(bian)(bian)---鏈接(test.0,ptintf.o)--可執(zhi)行文件(jian)

2. goto 語句:跳轉(zhuan)到指定的(de)標識符去(qu)執行

例子:

3.技巧性:在ubuntu中(zhong)ctrl+v進行選(xuan)中(zhong)后,按=可對(dui)齊所選(xuan)行列(lie)

4.應用性(xing):計(ji)算(suan)二維數(shu)組的(de)行(xing)列和時,可使用以下方(fang)法

5. bool 類型(xing):在c語言中用于表(biao)示真和假的類型(xing),在內存中的值為 1 和 0

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

使用方法:

① 定義頭文件:#include

② 使用函數:

6技巧性:用(yong)于(yu)顯示重復的數字,字母(mu)等(deng)時,要靈活使(shi)用(yong)數組下標

具體案例:



 

 

上一篇:嵌入式學習筆記:二維數組定義與使用

下一篇:嵌入式學習筆記:指針和指針變量的區別(指針知識點大全)

熱(re)點文章推薦
華清學員就(jiu)業榜單
高薪學員經驗(yan)分享
熱點(dian)新(xin)聞推薦
前臺專線:010-82525158 企業(ye)培(pei)訓洽(qia)談專線:010-82525379 院校合(he)作洽談(tan)專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部