c語言函式筆記19之函式3

2021-07-12 06:13:15 字數 1122 閱讀 8906

庫函式:

由c語言系統提供;

使用者無須定義,也不必在程式中作型別說明;

只需在程式前包含有該函式定義的標頭檔案;如sytem函式就要包含stdlib.h這個標頭檔案,也就是從商店裡買的鐮刀,已經固定了

自定義函式:

使用者在程式中根據需要而編寫的函式;自己打磨的鐮刀,可以任意形狀

和變數一樣,要想使用乙個函式,定義是不可缺少的,函式定義有4個要素:引數列表,返回型別,函式名和函式體,引數列表和返回型別對應著輸入輸出,函式名用於和程式中其他程式實體區分,而函式體是一段可執行的**塊,實現特定的演算法或功能。

函式的基本定義語法如下:

返回型別  函式名(引數列表)

(1)輸入:引數列表

基本形式為:

型別 變數名1,型別 變數名2,型別 變數名3,……

(2)輸出:返回型別

返回型別用於指明函式輸出值的型別,如果沒有輸出值,返回型別為void。如果在函式定義時沒有註明返回型別,預設為int。

(3)函式名

函式名用於標示該函式,和其他函式區分開來,因此,函式名必須是合乎編譯器命名規則的識別符號。

引數列表、返回型別和函式名總體稱為函式頭,與之對應的是函式體。

(4)函式體

函式體是一段用於實現特定功能的**塊,比如區域性變數宣告和其他執行語句等。注意,在函式體內宣告的變數不能和引數列表中的變數同名。

打造了一把鐮刀是為了割草,定義乙個函式是為了呼叫,函式呼叫有兩種型別,一是「先定義,後呼叫」,也就是這把鐮刀是在你自己家裡打造,自己家裡用。這要求函式定義和呼叫語句在同乙個檔案內,編譯器能從函式定義中提取函式的引數列表、輸出型別等介面資訊。二是「函式宣告+函式呼叫」,也就是鐮刀是在鍛造廠打造,然後那會家裡使用。大多數情況下,函式的定義與函式的呼叫並不在乙個檔案內,即使在乙個檔案中也有可能呼叫在前而定義在後,這時需要在呼叫之前先對函式宣告,告訴編譯器有這麼乙個函式存在,函式原型宣告將在後面討論,下面來看乙個先定義、後呼叫的例子

注意:函式的定義在程式中都是平行的,即不允許在乙個函式的內部再定義另乙個函式;

函式名是使用者自定義識別符號,當函式值為整型時型別名可省略(不推薦省略);當函式不需要向呼叫處返回值時,使用void型別名

形參表中的形參是使用者自定義識別符號,沒有引數時,圓括號不能省略,此時函式為無參函式。

C語言scanf函式筆記

1.變數的記憶體分析 1 位元組和位址 記憶體以 位元組 為單位 1gb 1024mb 1024 1024kb 1024 1024 1024b 每個位元組都有自己的位址 資料越大,佔位元組數越多 在64位編譯器中,基本資料型別所佔位元組數 char 乙個位元組 int 四個位元組 float 四個位...

C語言常用函式筆記

strcmp 比較字串 sscanf 讀取格式化的字串中的資料 memset 初始化記憶體的 萬能函式 通常為新申請的記憶體進行初始化工作。對一段記憶體空間全部設定為某個字元,一般用在對定義的字串進行初始化為 或 0 snprintf 按照format的格式格式化為字串,然後再將其拷貝至str中。最...

C 函式 筆記

內聯函式只適用於小函式,使用內聯函式需要注意以下幾點 內聯函式中不能含有任何迴圈語句以及switch和goto語句 內聯函式的宣告必須出現在內聯函式第一次被呼叫之前 內聯函式中不能說明陣列 遞迴函式不能定義為內聯函式 函式過載 函式引數個數或型別不同,可以構成過載函式 生命期 是指乙個識別符號從被建...