程式設計入門之C語言函式概述?

Tags: 語言, 函式, 定義,

在C語言中可從不同的角度對函式分類。

1) 從函式定義的角度看,函式可分為庫函式和使用者定義函式兩種。

庫函式:由C系統提供,使用者無須定義,也不必在程式中作型別說明,只需在程式前包含有該函式原型的標頭檔案即可在程式中直接呼叫。在前面各章的例題中反覆用到printf、scanf、getchar、putchar、gets、puts、strcat等函式均屬此類。

使用者定義函式:由使用者按需要寫的函式。對於使用者自定義函式,不僅要在程式中定義函式本身,而且在主調函式模組中還必須對該被調函式進行型別說明,然後才能使用。

2) 語言的函式兼有其它語言中的函式和過程兩種功能,從這個角度看,又可把函式分為有返回值函式和無返回值函式兩種。

有返回值函式:此類函式被呼叫執行完後將向呼叫者返回一個執行結果,稱為函式返回值。如數學函式即屬於此類函式。由使用者定義的這種要返回函式值的函式,必須在函式定義和函式說明中明確返回值的型別。

無返回值函式:此類函式用於完成某項特定的處理任務,執行完成後不向呼叫者返回函式值。這類函式類似於其它語言的過程。由於函式無須返回值,使用者在定義此類函式時可指定它的返回為“空型別”,空型別的說明符為“void”。

3) 從主調函式和被調函式之間資料傳送的角度看又可分為無參函式和有參函式兩種。

無參函式:函式定義、函式說明及函式呼叫中均不帶引數。主調函式和被調函式之間不進行引數傳送。此類函式通常用來完成一組指定的功能,可以返回或不返回函式值。

有參函式:也稱為帶參函式。在函式定義及函式說明時都有引數,稱為形式引數(簡稱為形參)。在函式呼叫時也必須給出引數,稱為實際引數(簡稱為實參)。進行函式呼叫時,主調函式將把實參的值傳送給形參,供被調函式使用。

4) C語言提供了極為豐富的庫函式,這些庫函式又可從功能角度作以下分類。

字元型別分類函式:用於對字元按ASCII碼分類:字母,數字,控制字元,分隔符,大小寫字母等。

轉換函式:用於字元或字串的轉換;在字元量和各類數字量(整型,實型等)之間進行轉換;在大、小寫之間進行轉換。

目錄路徑函式:用於檔案目錄和路徑操作。

診斷函式:用於內部錯誤檢測。

圖形函式:用於螢幕管理和各種圖形功能。

輸入輸出函式:用於完成輸入輸出功能。

介面函式:用於與DOS,BIOS和硬體的介面。

字串函式:用於字串操作和處理。

記憶體管理函式:用於記憶體管理。

數學函式:用於數學函式計算。

日期和時間函式:用於日期,時間轉換操作。

程序控制函式:用於程序管理和控制。

其它函式:用於其它各種功能。

以上各類函式不僅數量多,而且有的還需要硬體知識才會使用,因此要想全部掌握則需要一個較長的學習過程。應首先掌握一些最基本、最常用的函式,再逐步深入。由於課時關係,我們只介紹了很少一部分庫函式,其餘部分讀者可根據需要查閱C語言函式手冊。還應該指出的是,在C語言中,所有的函式定義,包括主函式main在內,都是平行的。也就是說,在一個函式的函式體內,不能再定義另一個函式,即不能巢狀定義。但是函式之間允許相互呼叫,也允許巢狀呼叫。習慣上把呼叫者稱為主調函式。函式還可以自己呼叫自己,稱為遞迴呼叫。main 函式是主函式,它可以呼叫其它函式,而不允許被其它函式呼叫。因此,C程式的執行總是從main函式開始,完成對其它函式的呼叫後再返回到main函式,最後由main函式結束整個程式。一個C源程式必須有,也只能有一個主函式main。

相關問題答案