新聞中心
只知道C語言必須要有一個且只能有一個而且名字還固定的main,But why ? 如果不了解它,就得多背誦一些莫名其妙的枯燥的規(guī)矩了。現(xiàn)在我試圖用自己的理解來解釋一下,供參考。
10年積累的網(wǎng)站設(shè)計、網(wǎng)站建設(shè)經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認識你,你也不認識我。但先網(wǎng)站設(shè)計后付款的網(wǎng)站建設(shè)流程,更有西區(qū)免費網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。
這就得從幾方面來認識;
首先得從函數(shù)產(chǎn)生的來源說起。
在開發(fā)程序中為了不讓代碼重復(fù)(否則修改起來會要多處去修改,勞民傷財)。因此就想到了把公共的東西提取出來,借助數(shù)學(xué)函數(shù)的概念,封裝出函數(shù):可以有輸入,可以有產(chǎn)出,中間是處理過程。
因此,函數(shù)的代名詞也叫過程,那么由此可以推出:面向過程編程思想其實也就是面向函數(shù)編程思想,也就意味著你要封裝出一個個的函數(shù),然后一個個調(diào)用...這樣就具有可移植性,下一個項目用到什么功能了,把那個函數(shù)直接拷貝過去即可。因此封裝出函數(shù)一開始只是為了簡化編程,但卻衍生出更多的提高編程效率的結(jié)果:可移植性。
它的長相類似:void myfunc(){}
類比一下:void main(){},可見它就是一個函數(shù)。那么你的編程過程,其實也就是在一個名叫main的函數(shù)體里寫東西而已。
這其實就是你編程的所有內(nèi)容:就是在寫一個main函數(shù)體...
認識了main是個函數(shù),那么現(xiàn)在可以來看:為什么只能有一個?
你能在一個文件中寫兩個同名的函數(shù)嗎?不能,因為有歧義;因此main函數(shù)只能有一個。
再來看為什么只能叫“main”,而不能叫其他,如“Main”或者“MAIN”或者其他名字。
試想一下:當你造了一個函數(shù),你很想做的就是調(diào)用它,那么你是怎么調(diào)用的?函數(shù)名();
同理:你寫的main(){}函數(shù)也就是讓調(diào)用的,但你在什么地方調(diào)用過嗎?沒有啊,那么誰來調(diào)用呢?操作系統(tǒng),一只看不見摸不著的大手。也就是說當你點“編譯且運行”的時候,是操作系統(tǒng)來調(diào)用main函數(shù)的。然而你知道調(diào)用的時候是要寫函數(shù)名的,也就意味著操作系統(tǒng)來調(diào)用的時候要讓你寫函數(shù)名,是不是感覺麻煩呢?因此操作系統(tǒng)就做了個小規(guī)矩:只找main函數(shù),而不找其他。所以你的函數(shù)名就只能叫main。所以,你得感謝操作系統(tǒng)做的這個規(guī)矩,讓你減少了調(diào)試運行時候的麻煩。就像在Linux上編譯的時候,為什么只能寫Makefile?因為make默認就只找這個文件一樣...
現(xiàn)在它是不是變得可愛了?對,就是要它變得可愛、變得合乎常理,才能學(xué)有所成。這也就是輕松學(xué)習(xí)之道。
C語言為什么那么難?就是學(xué)習(xí)的時候太按它的寫書順序了,所以:要想學(xué)的輕松,不是你整日整夜的背語法,也不是喊口號就可以做到的,要靈活變通,要打破常規(guī)順序,要螺旋迂回,要使用多種學(xué)習(xí)方法交互,要聯(lián)想,要穿插,總之是一個綜合的教學(xué)范疇。這也是為什么一個技術(shù)頂尖高手,卻難以做到讓你學(xué)的容易?因為:做技術(shù)開發(fā)和教學(xué)是兩碼事,一個可以埋頭苦干,誰也不理解都無所謂,而且就是要你不理解,才顯得他高大上和比你高一等。后者就完全相反,就得要讓你理解的容易,就是要讓你感覺到他原來和你一樣,都是“貧苦出生的老百姓,不是什么高高在上的神仙”,要做到這一點就涉及了解宇宙蒼生,就得涉及更多的綜合知識范疇,是一個難度高多了的挑戰(zhàn)。但我相信我有這個天賦......
最后要學(xué)的輕松,從心態(tài)上要有感恩之心,心胸開闊,你的潛力就會得到極大發(fā)揮。所以如果你還在比如地下室苦苦的掙扎和學(xué)習(xí),你得感謝,因為這種經(jīng)歷可能你這輩子也就這么一次,當你學(xué)有所成了之后,你想回頭到這里也沒機會了,這正是培養(yǎng)你練就你的社會母校......
網(wǎng)站題目:輕松理解C語言的入口函數(shù)main
網(wǎng)頁URL:http://fisionsoft.com.cn/article/jpegss.html