其實(shí)在匯編語言階段,函數(shù)這個(gè)概念還是比較模糊的。匯編語言的代碼往往就是從入口開始一條一條執(zhí)行,直到遇到跳轉(zhuǎn)指令然后才跳轉(zhuǎn)到目的指令處執(zhí)行。這個(gè)時(shí)候所有的代碼僅僅是按其將要執(zhí)行的順序排列而已。
創(chuàng)新互聯(lián)建站主營(yíng)陽(yáng)谷網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件開發(fā)公司,陽(yáng)谷h5小程序開發(fā)搭建,陽(yáng)谷網(wǎng)站營(yíng)銷推廣歡迎陽(yáng)谷等地區(qū)企業(yè)咨詢
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ù)的由來。
c語言定義函數(shù)是一段可以重復(fù)使用的代碼,用來獨(dú)立地完成某個(gè)功能,它可以接收用戶傳遞的數(shù)據(jù),也可以不接收。
接收用戶數(shù)據(jù)的函數(shù)在定義時(shí)要指明參數(shù),不接收用戶數(shù)據(jù)的不需要指明,根據(jù)這一點(diǎn)可以將函數(shù)分為有參函數(shù)和無參函數(shù)。
函數(shù)就是一段封裝好的,可以重復(fù)使用的代碼,它使得我們的程序更加模塊化,不需要編寫大量重復(fù)的代碼。函數(shù)可以提前保存起來,并給它起一個(gè)獨(dú)一無二的名字,只要知道它的名字就能使用這段代碼。
C語言特點(diǎn)及運(yùn)用范圍:
C語言是一門面向過程的、抽象化的通用程序設(shè)計(jì)語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器。C語言是僅產(chǎn)生少量的機(jī)器語言以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的高效率程序設(shè)計(jì)語言。它既具有高級(jí)語言的特點(diǎn),又具有匯編語言的特點(diǎn)。
C語言特點(diǎn):簡(jiǎn)潔的語言、具有結(jié)構(gòu)化的控制語句、豐富的數(shù)據(jù)類型、豐富的運(yùn)算符、可對(duì)物理地址進(jìn)行直接操作、代碼具有較好的可移植性、可生成高質(zhì)量、目標(biāo)代碼執(zhí)行效率高的程序。
C語言是一門面向過程的計(jì)算機(jī)編程語言,C語言的設(shè)計(jì)目標(biāo)是提供一種能以簡(jiǎn)易的方式編譯、處理低級(jí)存儲(chǔ)器、僅產(chǎn)生少量的機(jī)器碼以及不需要任何運(yùn)行環(huán)境支持便能運(yùn)行的編程語言。C語言描述問題比匯編語言迅速、工作量小、可讀性好、易于調(diào)試、修改和移植,而代碼質(zhì)量與匯編語言相當(dāng)。
函數(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ù)。