函數>概述
概述 C語言的程式是由一個(或多個)函數組成的。雖然在前面各章的程式中大都只有一個主函數main(),但實用程式往往由多個函數組成。函數是C根源程式的基本者函數,通過對函數者函數的使用實現特定的功能。C語言中的函數相當於其他高階語言的副程式。C語言不僅提供了極為豐富的庫函數(如Turbo C,MS C都提供了三百多個庫函數),還允許使用者建立自己定義的函數。使用者可把自己的演算法編成一個個相對獨立的函數者函數,然後用使用的方法來使用函數。可以說C程式的全部工作都是由各式各樣的函數完成的,所以也把C語言稱為函數式語言。 在C語言中可從不同的角度對函數分類。 1. 從函數定義的角度看,函數可分為庫函數和使用者定義函數兩種。 1) 庫函數:由C系統提供,使用者無須定義,也不必在程式中作類型說明,只需在程式前包含有該函數原型的頭檔即可在程式中直接使用。在之前的例題中反復用到printf、scanf、getchar、putchar、gets、puts、strcat等函數均屬此類。 2) 使用者定義函數:由使用者按需要寫的函數。對於使用者自定義函數,不僅要在程式中定義函數本身,而且在主函數(main)者函數中還必須對該函數進行宣告,然後才能使用。 2. C語言提供了極為豐富的庫函數,這些庫函數又可從功能角度作以下分類。 1) 字元類型分類函數:用於對字元按ASCII碼分類:字母,數位,控制字元,分隔符號,大小寫字母等。 2) 轉換函數:用於字元或字串的轉換;在字元量和各類數位量(整型,實型等)之間進行轉換;在大、小寫之間進行轉換。 3) 目錄路徑函數:用於檔目錄和路徑操作。 4) 診斷函數:用於內部錯誤檢測。 5) 圖形函數:用於螢幕管理和各種圖形功能。 6) 輸入輸出函數:用於完成輸入輸出功能。 7) 介面函數:用於與DOS,BIOS和硬體的介面。 8) 字串函數:用於字串操作和處理。 9) 記憶體管理函數:用於記憶體管理。 10) 數學函數:用於數學函數計算。 11) 日期和時間函數:用於日期,時間轉換操作。 12) 進程控制函數:用於進程管理和控制。 13) 其他函數:用於其他各種功能。 以上各類函數不僅數量多,而且有的還需要硬體知識才會使用,因此要想全部掌握則需要一個較長的學習過程。應首先掌握一些最基本、最常用的函數,再逐步深入。由於課時關係,我們只介紹了很少一部分庫函數,其餘部分讀者可根據需要查閱有關手冊。 另外,在C語言中,所有的函數定義,包括主函數main在內,都是平行的。也就是說,在一個函數的函數體內,不能再定義另一個函數,即不能嵌套定義。但是函數之間允許相互使用,也允許嵌套使用。習慣上把使用者稱為主函數。函數還可以自己使用自己,稱為遞迴使用。 main 函數是主函數,它可以使用其他函數,而不允許被其他函數使用。因此,C語言程式的執行總是從main函數開始,完成對其他函數的使用後再返回到main函數,最後由main函數結束整個程式。一個C語言程式必須有,也只能有一個主函數main。
|