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++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo