在C語言里,主函數(shù),也就是main函數(shù),是C標(biāo)準(zhǔn)的一個(gè)組成部分(參考C90/C99標(biāo)準(zhǔn)協(xié)議文檔)。雖然它也被稱作函數(shù)。但是,它對于C編譯器來講,它并不是一個(gè)真正意義上的函數(shù)?;蛘哒f,它不屬于你代碼中的任何一個(gè)模塊。
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了金華免費(fèi)建站歡迎大家使用!
由于歷史原因,丹尼斯里奇和肯湯普森在完成對Basic的升級之后(也就是最初的C),對于整個(gè)語言寫成的代碼的主入口作出了一個(gè)定義,也即,使用一個(gè)名為main的,被定義為函數(shù)形式的段表示整個(gè)C程序(在OS中運(yùn)行的某個(gè)進(jìn)程)的進(jìn)入點(diǎn)(Entrance)。
但對于用戶的代碼而言,用戶使用C語言編寫的所有模塊中的函數(shù)都是經(jīng)過設(shè)計(jì)和實(shí)現(xiàn)的;而不具有main的通用性。也許你應(yīng)該知道,一個(gè)C程序的執(zhí)行必然是從main開始的。
關(guān)于模塊化編程,我不知道提問者是否清楚其具體。如果不甚明白的話,請參考(C語言模塊化編程(我見過最好的).pdf),來源于百度文庫。
C語言中的模塊化體現(xiàn)在兩個(gè)方面:
1 函數(shù)。函數(shù)是C語言的最小單位,每個(gè)函數(shù)均實(shí)現(xiàn)一個(gè)獨(dú)立的功能,于是每個(gè)函數(shù)均可以當(dāng)做是一個(gè)最小的功能模塊。這樣,C語言就實(shí)現(xiàn)了最基本的模塊化。
2 文件。在C語言中,支持一個(gè)程序由多個(gè)源文件編譯,所以可以把類似功能的一組函數(shù)寫在同一個(gè)文件中,以源文件為單位,實(shí)現(xiàn)模塊化。當(dāng)模塊較大時(shí),可以寫在多個(gè)頭文件中,然后編譯成一個(gè)庫文件,以庫文件為單位,實(shí)現(xiàn)模塊化。
C語言中用函數(shù)來實(shí)現(xiàn)程序模塊。
模塊化程序設(shè)計(jì)是將一個(gè)大的任務(wù)分解成若干個(gè)小任務(wù),再將小任務(wù)分解成更小的任務(wù),直到每一個(gè)任務(wù)都只完成一個(gè)獨(dú)立功能。這樣的每個(gè)任務(wù)都叫做模塊,C語言中模塊是用函數(shù)來實(shí)現(xiàn)的。
借助函數(shù)來實(shí)現(xiàn)程序模塊化,把你想實(shí)現(xiàn)的功能用函數(shù)來實(shí)現(xiàn),不同功能的就用不同的函數(shù)來實(shí)現(xiàn),而且,函數(shù)在一定程度上可以被復(fù)用,所以稱為模塊,搜索零基礎(chǔ)學(xué)通C語言系列大全之線程_模塊兒_靜態(tài)庫_循環(huán)總結(jié)視頻教程就可以看了。
C語言中一個(gè)函數(shù)(function)是一個(gè)可以從程序其它地方調(diào)用執(zhí)行的語句塊。
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ù)馮諾伊曼的“存儲程序原理”,每一個(gè)計(jì)算機(jī)系統(tǒng)包含:輸入系統(tǒng)、輸出系統(tǒng)、運(yùn)算器以及控制器,實(shí)際上對于C語言中的函數(shù)來說,它是“存儲程序原理”的軟實(shí)現(xiàn),其中形參、實(shí)參這是輸入系統(tǒng),返回值是輸出系統(tǒng),函數(shù)體中的運(yùn)算符,比如+、-、*、/四則運(yùn)算即為運(yùn)算器,而邏輯運(yùn)算符以及if、while等控制語句便是一個(gè)控制器。