溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

輕松理解C語言的入口函數main

發布時間:2020-07-30 15:33:38 來源:網絡 閱讀:562 作者:ningcaichen66 欄目:編程語言

只知道C語言必須要有一個且只能有一個而且名字還固定的main,But why ? 如果不了解它,就得多背誦一些莫名其妙的枯燥的規矩了?,F在我試圖用自己的理解來解釋一下,供參考。

這就得從幾方面來認識;

首先得從函數產生的來源說起。

在開發程序中為了不讓代碼重復(否則修改起來會要多處去修改,勞民傷財)。因此就想到了把公共的東西提取出來,借助數學函數的概念,封裝出函數:可以有輸入,可以有產出,中間是處理過程。

因此,函數的代名詞也叫過程,那么由此可以推出:面向過程編程思想其實也就是面向函數編程思想,也就意味著你要封裝出一個個的函數,然后一個個調用...這樣就具有可移植性,下一個項目用到什么功能了,把那個函數直接拷貝過去即可。因此封裝出函數一開始只是為了簡化編程,但卻衍生出更多的提高編程效率的結果:可移植性。

它的長相類似:void myfunc(){}

類比一下:void main(){},可見它就是一個函數。那么你的編程過程,其實也就是在一個名叫main的函數體里寫東西而已。

這其實就是你編程的所有內容:就是在寫一個main函數體...

認識了main是個函數,那么現在可以來看:為什么只能有一個?

你能在一個文件中寫兩個同名的函數嗎?不能,因為有歧義;因此main函數只能有一個。

再來看為什么只能叫“main”,而不能叫其他,如“Main”或者“MAIN”或者其他名字。

試想一下:當你造了一個函數,你很想做的就是調用它,那么你是怎么調用的?函數名();

同理:你寫的main(){}函數也就是讓調用的,但你在什么地方調用過嗎?沒有啊,那么誰來調用呢?操作系統,一只看不見摸不著的大手。也就是說當你點“編譯且運行”的時候,是操作系統來調用main函數的。然而你知道調用的時候是要寫函數名的,也就意味著操作系統來調用的時候要讓你寫函數名,是不是感覺麻煩呢?因此操作系統就做了個小規矩:只找main函數,而不找其他。所以你的函數名就只能叫main。所以,你得感謝操作系統做的這個規矩,讓你減少了調試運行時候的麻煩。就像在Linux上編譯的時候,為什么只能寫Makefile?因為make默認就只找這個文件一樣...

現在它是不是變得可愛了?對,就是要它變得可愛、變得合乎常理,才能學有所成。這也就是輕松學習之道。

C語言為什么那么難?就是學習的時候太按它的寫書順序了,所以:要想學的輕松,不是你整日整夜的背語法,也不是喊口號就可以做到的,要靈活變通,要打破常規順序,要螺旋迂回,要使用多種學習方法交互,要聯想,要穿插,總之是一個綜合的教學范疇。這也是為什么一個技術頂尖高手,卻難以做到讓你學的容易?因為:做技術開發和教學是兩碼事,一個可以埋頭苦干,誰也不理解都無所謂,而且就是要你不理解,才顯得他高大上和比你高一等。后者就完全相反,就得要讓你理解的容易,就是要讓你感覺到他原來和你一樣,都是“貧苦出生的老百姓,不是什么高高在上的神仙”,要做到這一點就涉及了解宇宙蒼生,就得涉及更多的綜合知識范疇,是一個難度高多了的挑戰。但我相信我有這個天賦......

最后要學的輕松,從心態上要有感恩之心,心胸開闊,你的潛力就會得到極大發揮。所以如果你還在比如地下室苦苦的掙扎和學習,你得感謝,因為這種經歷可能你這輩子也就這么一次,當你學有所成了之后,你想回頭到這里也沒機會了,這正是培養你練就你的社會母校......


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女