- 相關推薦
什么是C語言函數
可以說C程序的全部工作都是由各式各樣的函數完成的,所以也把C語言稱為函數式語言。由于采用了函數模塊式的結構,C語言易于實現結構化程序設計。使程序的層次結構清晰,便于程序的編寫、閱讀、調試。今天,小編為大家搜索整理了什么是C語言函數,希望大家能有所收獲,更多精彩內容請持續關注我們應屆畢業生考試網!
什么是函數
第一,函數就是C語言的模塊,一塊一塊的,有較強的獨立性,可以相互調用,換句話說,C語言中,一個函數里面可以調用n個函數,即大函數調用小函數,小函數又調用“小小”函數。這就是結構化程序設計,所以面向過程的語言又叫結構化語言。
第二,函數就是一系列C語句的集合,能完成某個特定的功能。需要該功能的時候直接調用該函數即可,不用每次都堆疊代碼。需要修改該功能時,也只需要修改和維護這一個函數即可。
為什么需要函數
第一,將語句集合成函數的好處是方便代碼重用。所謂“重用”,是指有一些代碼的功能是相同的,操作是一樣的,只不過針對的數據不一樣,這時就可以將這種功能寫成一個函數模塊,以后用到這個功能時只需要調用這個函數模塊就可以了,不需要再重復地編寫同樣的代碼。這樣可以解決大量同類型的問題,避免重復性操作。
第二,將語句集合成函數方便代碼的維護。哪個功能出問題了,或者需要修改某個功能,那就只需要修改某個功能的函數就可以了。
所以,函數有利于程序的模塊化。這實際上就是面向過程的思想。面向過程語言最基本的單位不是語句,而是函數。
庫函數和自定義函數
前面各章中,程序大都只有一個主函數main,但是在實際編程中程序往往是由多個函數組成的。
C語言不僅提供了極為豐富的庫函數(幾百個),還允許用戶定義自己的函數。用戶可以將自己的算法編成一個個相對獨立的函數模塊,然后通過調用來使用這些函數。在實際的C編程中用得最多的就是自己定義的函數。庫函數只能提供一些基本的功能,我們所需要的大多數功能還是需要自己寫。
不僅如此,在將來要學習的很多語言中,比如Labview,這些公司在開發這些語言的時候就已經將所有需要用到的函數都模塊化了,不再需要自己動手編寫模塊內部的程序。我們只需要調用這些模塊編程即可,這樣大大提高了編程的效率,簡化了調試的難度。我們甚至不需要知道各個模塊內部的程序到底是怎么編寫的,我們只需要知道怎么用就行了。
函數的調用
可以說,C程序的全部工作都是由各式各樣的函數完成的。由于采用了函數模塊式結構,所以C語言易于實現結構化程序設計,使程序的層次結構清晰,便于程序的編寫、閱讀和調試。
在C語言中,所有函數的定義,包括主函數main在內,都是“平行”的。也就是說,在一個函數的函數體內,不能再定義另一個函數,即不能嵌套定義。但是函數之間允許相互調用,也允許嵌套調用。習慣上將調用者稱為主調函數,被調用者稱為被調函數。函數還可以自己調用自己,稱為遞歸調用。
此外,main函數是主函數,它可以調用其他函數,但不允許被其他函數調用。C程序的執行總是從main函數開始的(也是由main結束的),就算定義的函數放在main的前面,程序仍然從main開始執行。如果執行到函數調用則執行被調用的函數,完成函數調用后再返回到main函數繼續往下執行,最后由main函數結束整個程序。一個C語言程序必須有且僅有一個主函數main。
拓展:C語言的函數分類
在C語言中可從不同的角度對函數分類。
1.從函數定義的角度看,函數可分為庫函數和用戶定義函數兩種。
(1)庫函數
由C系統提供,用戶無須定義,也不必在程序中作類型說明,只需在程序前包含有該函數原型的頭文件即可在程序中直接調用。在前面各章的例題中反復用到printf、scanf、getchar、putchar、gets、puts、strcat等函數均屬此類。
(2)用戶定義函數
由用戶按需要寫的函數。對于用戶自定義函數,不僅要在程序中定義函數本身,而且在主調函數模塊中還必須對該被調函數進行類型說明,然后才能使用。
2.C語言的函數兼有其它語言中的函數和過程兩種功能,從這個角度看,又可把函數分為有返回值函數和無返回值函數兩種。
(1)有返回值函數
此類函數被調用執行完后將向調用者返回一個執行結果,稱為函數返回值。如數學函數即屬于此類函數。由用戶定義的這種要返回函數值的函數,必須在函數定義和函數說明中明確返回值的類型。
(2)無返回值函數
此類函數用于完成某項特定的.處理任務,執行完成后不向調用者返回函數值。這類函數類似于其它語言的過程。由于函數無須返回值,用戶在定義此類函數時可指定它的返回為“空類型”,空類型的說明符為“void”。
3.從主調函數和被調函數之間數據傳送的角度看又可分為無參函數和有參函數兩種。
(1)無參函數
函數定義、函數說明及函數調用中均不帶參數。主調函數和被調函數之間不進行參數傳送。此類函數通常用來完成一組指定的功能,可以返回或不返回函數值。
(2)有參函數
也稱為帶參函數。在函數定義及函數說明時都有參數,稱為形式參數(簡稱為形參)。在函數調用時也必須給出參數,稱為實際參數(簡稱為實參)。進行函數調用時,主調函數將把實參的值傳送給形參,供被調函數使用。
4.C語言提供了極為豐富的庫函數,這些庫函數又可從功能角度作以下分類。
(1)字符類型分類函數
用于對字符按ASCII碼分類:字母,數字,控制字符,分隔符,大小寫字母等。
(2)轉換函數
用于字符或字符串的轉換;在字符量和各類數字量(整型,實型等)之間進行轉換;在大、小寫之間進行轉換。
(3)目錄路徑函數
用于文件目錄和路徑操作。
(4)診斷函數
用于內部錯誤檢測。
(5)圖形函數
用于屏幕管理和各種圖形功能。
(6)輸入輸出函數
用于完成輸入輸出功能。
(7)接口函數
用于與DOS,BIOS和硬件的接口。
(8)字符串函數
用于字符串操作和處理。
(9)內存管理函數
用于內存管理。
(10)數學函數
用于數學函數計算。
(11)日期和時間函數
用于日期,時間轉換操作。
(12)進程控制函數
用于進程管理和控制。
(13)其它函數
用于其它各種功能。
以上各類函數不僅數量多,而且有的還需要硬件知識才會使用,因此要想全部掌握則需要一個較長的學習過程。應首先掌握一些最基本、最常用的函數,再逐步深入。
【什么是C語言函數】相關文章:
c語言數學函數的介紹10-20
C語言函數遞歸教程09-25
C語言函數的遞歸調用08-26
C語言函數的遞歸和調用08-22
C語言函數參數傳遞問題10-17
C語言中strpbr()函數的用法07-25
c語言中time函數的用法08-27
如何快速掌握C語言函數08-23
C語言中isalnum()函數和isalpha()函數的對比10-12
Java程序調用C/C++語言函數的方法07-31