那些年學(xué)C語(yǔ)言犯的錯(cuò),C語(yǔ)言新手易錯(cuò)集錦之main函數(shù)

LINK : fatal error LNK1561
?必須定義入口點(diǎn)
main函數(shù)容易寫成mian函數(shù)。在C語(yǔ)言中缺少主函數(shù)的時(shí)候都會(huì)報(bào)以上錯(cuò)誤哦!相信很多剛開始學(xué)習(xí)C語(yǔ)言的小伙伴都會(huì)出現(xiàn)這樣的問(wèn)題吧!vs中的錯(cuò)誤提示如下:

main函數(shù)小知識(shí)
從開始學(xué)習(xí)C語(yǔ)言,大家似乎看到了很多版本的main函數(shù),那么哪一種才是正確的呢?我們先來(lái)看看目前有哪些版本。
雙無(wú)系列
沒有返回值,沒有入?yún)?/strong>
main()
在C89標(biāo)準(zhǔn)中,這種寫法是可以接受的,但使用現(xiàn)在的編譯器編譯時(shí),會(huì)報(bào)告警,并且會(huì)將其返回值默認(rèn)為int。實(shí)際上,如果函數(shù)沒有顯式聲明返回類型,那么編譯器會(huì)將返回值默認(rèn)為int。
雙空系列
參數(shù)為void,返回值為void
void main(void){}
這種形式的來(lái)源不得而知。但是為何這么多初學(xué)者使用?main函數(shù)的返回值最終會(huì)作為程序的退出狀態(tài),而一旦聲明為void,在程序退出后,想要獲取其退出狀態(tài)也就不可以了。因此不建議其返回值為void。
有返回值系列
主函數(shù)帶int類型的返回值
這是常見的一種寫法。無(wú)形參,表明它在調(diào)用的時(shí)候不能傳入任何參數(shù),那么它也就不能獲取命令行參數(shù)了。這是小編教學(xué)時(shí)習(xí)慣用的一種寫法
有返回值有參系列
主函數(shù)帶int類型的返回值,主函數(shù)帶有兩個(gè)參數(shù)
int main(int argc,char *argv[])
這也是最常見的一種寫法。第一個(gè)入?yún)槊钚袇?shù)個(gè)數(shù),第二個(gè)入?yún)槊钚袇?shù)數(shù)組。通常用于實(shí)現(xiàn)需要從命令行獲取參數(shù)的功能。小編在講文件操作的時(shí)候通過(guò)命令行參數(shù)簡(jiǎn)單實(shí)現(xiàn)過(guò)windows系統(tǒng)中的copy指令不清楚的可以去看看視頻教程。
到底使用哪種呢?
C89/C99/C11標(biāo)準(zhǔn)文檔中只提供了兩種main函數(shù)的寫法:

至此,我們已經(jīng)知道了c語(yǔ)言main函數(shù)的寫法,我們來(lái)總結(jié)一下前面的內(nèi)容:
C標(biāo)準(zhǔn)只提供了兩種main的形式。
為了可移植性,建議采用標(biāo)準(zhǔn)形式。
聲明返回值時(shí),默認(rèn)為int。
