重慶分公司,新征程啟航
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
為企業(yè)提供網(wǎng)站建設(shè)、域名注冊(cè)、服務(wù)器等服務(wù)
C語言中一個(gè)函數(shù)(function)是一個(gè)可以從程序其它地方調(diào)用執(zhí)行的語句塊。
員工經(jīng)過長(zhǎng)期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊(duì)的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)建站堅(jiān)持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因?yàn)椤皩W⑺詫I(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡(jiǎn)單”。公司專注于為企業(yè)提供網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、微信公眾號(hào)開發(fā)、電商網(wǎng)站開發(fā),成都小程序開發(fā),軟件按需策劃設(shè)計(jì)等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。
1、通過使用函數(shù)(functions)我們可以把我們的程序以更模塊化的形式組織起來,從而利用C語言所支持的結(jié)構(gòu)化程序設(shè)計(jì)。
2、從數(shù)學(xué)角度,函數(shù)即集合A和集合B之間的映射關(guān)系。實(shí)際上計(jì)算機(jī)中的函數(shù)概念也是源于此,因此,一般函數(shù),都有形參和返回值。
3、從計(jì)算機(jī)組成原理的角度來看,函數(shù)即是一個(gè)小型的計(jì)算機(jī)系統(tǒng),依據(jù)馮諾伊曼的“存儲(chǔ)程序原理”,每一個(gè)計(jì)算機(jī)系統(tǒng)包含:輸入系統(tǒng)、輸出系統(tǒng)、運(yùn)算器以及控制器,實(shí)際上對(duì)于C語言中的函數(shù)來說,它是“存儲(chǔ)程序原理”的軟實(shí)現(xiàn),其中形參、實(shí)參這是輸入系統(tǒng),返回值是輸出系統(tǒng),函數(shù)體中的運(yùn)算符,比如+、-、*、/四則運(yùn)算即為運(yùn)算器,而邏輯運(yùn)算符以及if、while等控制語句便是一個(gè)控制器。
函數(shù)是一組一起執(zhí)行一個(gè)任務(wù)的語句。每個(gè) C 程序都至少有一個(gè)函數(shù),即主函數(shù) main() ,所有簡(jiǎn)單的程序都可以定義其他額外的函數(shù)。
您可以把代碼劃分到不同的函數(shù)中。如何劃分代碼到不同的函數(shù)中是由您來決定的,但在邏輯上,劃分通常是根據(jù)每個(gè)函數(shù)執(zhí)行一個(gè)特定的任務(wù)來進(jìn)行的。
C 標(biāo)準(zhǔn)庫(kù)提供了大量的程序可以調(diào)用的內(nèi)置函數(shù)。例如,函數(shù) strcat() 用來連接兩個(gè)字符串,函數(shù) memcpy() 用來復(fù)制內(nèi)存到另一個(gè)位置。
函數(shù)還有很多叫法,比如方法、子例程或程序,等等。
C 語言中的函數(shù)定義的一般形式如下:
在 C 語言中,函數(shù)由一個(gè)函數(shù)頭和一個(gè)函數(shù)主體組成。下面列出一個(gè)函數(shù)的所有組成部分:
以下是 max() 函數(shù)的源代碼。該函數(shù)有兩個(gè)參數(shù) num1 和 num2,會(huì)返回這兩個(gè)數(shù)中較大的那個(gè)數(shù):
創(chuàng)建 C 函數(shù)時(shí),會(huì)定義函數(shù)做什么,然后通過調(diào)用函數(shù)來完成已定義的任務(wù)。
當(dāng)程序調(diào)用函數(shù)時(shí),程序控制權(quán)會(huì)轉(zhuǎn)移給被調(diào)用的函數(shù)。被調(diào)用的函數(shù)執(zhí)行已定義的任務(wù),當(dāng)函數(shù)的返回語句被執(zhí)行時(shí),或到達(dá)函數(shù)的結(jié)束括號(hào)時(shí),會(huì)把程序控制權(quán)交還給主程序。
調(diào)用函數(shù)時(shí),傳遞所需參數(shù),如果函數(shù)返回一個(gè)值,則可以存儲(chǔ)返回值。例如:
如上把 max() 函數(shù)和 main() 函數(shù)放一塊,編譯源代碼。當(dāng)運(yùn)行最后的可執(zhí)行文件時(shí),會(huì)產(chǎn)生下列結(jié)果:
形式參數(shù)就像函數(shù)內(nèi)的其他局部變量,在進(jìn)入函數(shù)時(shí)被創(chuàng)建,退出函數(shù)時(shí)被銷毀。
當(dāng)調(diào)用函數(shù)時(shí),有兩種向函數(shù)傳遞參數(shù)的方式:
默認(rèn)情況下,C 使用 傳值調(diào)用 來傳遞參數(shù)。一般來說,這意味著函數(shù)內(nèi)的代碼不能改變用于調(diào)用函數(shù)的實(shí)際參數(shù)。
其實(shí)在匯編語言階段,函數(shù)這個(gè)概念還是比較模糊的。匯編語言的代碼往往就是從入口開始一條一條執(zhí)行,直到遇到跳轉(zhuǎn)指令然后才跳轉(zhuǎn)到目的指令處執(zhí)行。這個(gè)時(shí)候所有的代碼僅僅是按其將要執(zhí)行的順序排列而已。
c語言調(diào)用的函數(shù)的好處
降低復(fù)雜性,使用函數(shù)的最首要原因是為了降低程序的復(fù)雜性,可以使用函數(shù)來隱含信息,從而使你不必再考慮這些信息。
避免重復(fù)代碼段,如果在兩個(gè)不同函數(shù)中的代碼很相似,這往往意味著分解工作有誤。這時(shí),應(yīng)該把兩個(gè)函數(shù)中重復(fù)的代碼都取出來,把公共代碼放入一個(gè)新的通用函數(shù)中,然后再讓這兩個(gè)函數(shù)調(diào)用新的通用函數(shù)。
通過使公共代碼只出現(xiàn)一次,可以節(jié)約許多空間。因?yàn)橹灰谝粋€(gè)地方改動(dòng)代碼就可以了。這時(shí)代碼也更可靠了。
限制改動(dòng)帶來的影響,由于在獨(dú)立區(qū)域進(jìn)行改動(dòng),因此,由此帶來的影響也只限于一個(gè)或最多幾個(gè)區(qū)域中。隱含順序,如果程序通常先從用戶那里讀取數(shù)據(jù),然后再?gòu)囊粋€(gè)文件中讀取輔助數(shù)據(jù),在設(shè)計(jì)系統(tǒng)時(shí)編寫一個(gè)函數(shù),隱含哪一個(gè)首先執(zhí)行的信息。
后來人們發(fā)現(xiàn)這樣寫代碼非常費(fèi)勁,容易出錯(cuò),也不方便。于是想出一個(gè)辦法,把一些功能相對(duì)來說能成為一個(gè)整體的代碼放到一起打包,通過一些數(shù)據(jù)接口和外界通信。這就是函數(shù)的由來。