国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

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

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

函數(shù)的意義

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

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

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

1.2函數(shù)的分類

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

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

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

1.3函數(shù)的使用

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

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

例子1:pow()

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

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

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

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

實際情況

例子2:sqrt()

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

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

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

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

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

pow,sqrt為double型

補充:常見數(shù)學(xué)函數(shù)

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

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

具體實現(xiàn)過程:

1.5函數(shù)的定義

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

1.52定義的語法:

類型標(biāo)識符 函數(shù)名(形式參數(shù)類型說明列表)

{

函數(shù)體

}

注:類型標(biāo)識符:說明函數(shù)返回值的類型

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

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

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

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

1.53設(shè)計過程:

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

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

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

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

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

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

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

完整實例:

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

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

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

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

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

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

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

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

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

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

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

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

例如:add(3,4,5)

1.8值傳遞

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

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

如:形參1=實參1 形參2=實參2….

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

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

1.9無參函數(shù)

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

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

實例:

1.10函數(shù)的返回值

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

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

函數(shù)允許沒有return,正對沒有返回值的函數(shù),不能return一個值,函數(shù)執(zhí)行完畢后,自動返回

例如:

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

如果沒有返回值,就寫void

 

補充:return的作用:1.返回一個值

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

1.11注意及補充

1.變量的作用域:表示一個變量的作用范圍

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

自動變量(auto),靜態(tài)變量(static)根據(jù)存儲區(qū)域來進行區(qū)分

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

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

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

#define SIZE 5

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

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

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

例子:

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

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

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

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

使用方法:

① 定義頭文件:#include

② 使用函數(shù):

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

具體案例:



 

 

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

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

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

回到頂部