c語言如何寫main函數(shù) C語言的main函數(shù)

數(shù)據(jù)結(jié)構(gòu)C語言題目求解答,最后面的主函數(shù)main應(yīng)該怎么寫?

main可以建立兩個多項式,相加后得到另一個多項式。并輸出這三個多項式。然后釋放鏈表空間。結(jié)束程序。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、成都微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了竹山免費建站歡迎大家使用!

初學(xué)編程,C語言中的main函數(shù)

考慮到main函數(shù)的特殊性,lz不明白這個問題可以理解。

main()是省略了返回值類型,C語言會默認(rèn)認(rèn)為成main的類型為int,在main()的函數(shù)體內(nèi)要返回一個值,如return 0;

而void main()的返回值是void類型,也就是說沒有返回值。這樣在main()的函數(shù)體內(nèi)你就不用寫return 0;或者return 1;之類的返回語句。

在一個程序中,可以說你看不出兩者的差別,因為main()是C語言的入口點,入口點如果返回了程序也就結(jié)束了,因此C語言的這個特性似乎沒用??蓻]用的話,C語言的設(shè)計者為什么要這么做呢?!肯定有用。

沒錯,前面我說的是在一個程序中,它似乎沒用??扇绻粋€程序prog2調(diào)用另一個程序prog1的話(這里指的是prog2直接調(diào)用prog1編譯好的可執(zhí)行文件),那么這個特性就有用了。因為prog2要知道prog1運行之后的狀態(tài)。比如你用C寫了一個刪除文件的程序(暫且命名為delf),然后用另一個程序去調(diào)用delf,那么調(diào)用結(jié)果怎么樣???這個文件是否刪掉了?這是int main()就會派上用場了。C語言中默認(rèn)的main如果返回為0,那么這個程序調(diào)用就成功了,其他值,則為不同的錯誤代碼。在你的delf程序中,如果那個文件刪除成功,那么就在int main()中返回0,其他調(diào)用delf的程序就知道,噢,這個操作成功了。

在unix/linux系統(tǒng)中的很多命令都是通過這種方式獲得運行結(jié)果的。

關(guān)于譚浩強的書,我想不用多說,發(fā)行量說明了一切。畢竟第二版在編寫的時候還比較早,而第三版根據(jù)很多現(xiàn)在的需要進行了改寫,內(nèi)容當(dāng)然會好些。鑒于lz是初學(xué)C,其實大可不必在這個問題上浪費太多時間,當(dāng)你有了更多的項目經(jīng)驗,對這個問題會有更深刻的理解。

上面我已經(jīng)給出了main()、int main()和void main()的區(qū)別,但建議lz忽略這個差別,認(rèn)為成二者一樣,先把C的其他部分學(xué)好。至于只寫成main(),我并不推薦,就算編譯器通過了,這種編程的風(fēng)格也太不嚴(yán)謹(jǐn),不利于好的習(xí)慣的養(yǎng)成。

c語言中,標(biāo)準(zhǔn)main函數(shù)的書寫規(guī)范是什么?

在最新的 C99 標(biāo)準(zhǔn)中,只有以下兩種定義方式是正確的:

int main( void ) /* 無參數(shù)形式 */

{

...

return 0;

}

int main( int argc, char *argv[] ) /* 帶參數(shù)形式 */

{

...

return 0;

}

int指明了main()函數(shù)的返回類型,函數(shù)名后面的圓括號一般包含傳遞給函數(shù)的信息。void表示沒有給函數(shù)傳遞參數(shù)。關(guān)于帶參數(shù)的形式,我們等會討論。

瀏覽老版本的C代碼,將會發(fā)現(xiàn)程序常常以。

main()

這種形式開始。C90標(biāo)準(zhǔn)允許這種形式,但是C99標(biāo)準(zhǔn)不允許。因此即使你當(dāng)前的編譯器允許,也不要這么寫。

你還可能看到過另一種形式。

void main()

有些編譯器允許這種形式,但是還沒有任何標(biāo)準(zhǔn)考慮接受它。C++ 之父 Bjarne Stroustrup 在他的主頁上的 FAQ 中明確地表示:void main( ) 的定義從來就不存在于 C++ 或者 C 。所以,編譯器不必接受這種形式,并且很多編譯器也不允許這么寫。

c語言main函數(shù)

//?C語言由bell實驗室創(chuàng)立,但后續(xù)分支太多

//?所以ISO(國際標(biāo)準(zhǔn)化組織)制定了統(tǒng)一標(biāo)準(zhǔn)

//?目前通過的標(biāo)準(zhǔn)主要有3個?C89?C99?C11

ASNSI?X3.159-1989????????????對應(yīng)C89由ASNSI制定

ISO/IEC?9899:1990????????????還是C89,只是ISO從ASNSI那里“抄襲”過來,又稱C90

ISO/IEC?9899/AMD1:1995???????對于C89的補充,又稱C95

ISO/IEC?9899:1999????????????C99標(biāo)準(zhǔn)

ISO/IEC?9899:2011????????????C11標(biāo)準(zhǔn)

//關(guān)于main函數(shù)的標(biāo)準(zhǔn)在C89和C99又有差異

類型一,不指明返回類型

main?(){return?0;}

//這在C89中是合法的,因為不指明返回類型其實是隱含的告訴編譯器,這個函數(shù)返回類型是int

//這在C99中是非法的,因為C99要求顯式聲明所有函數(shù)

類型二,不書寫return?...;在main函數(shù)中

int?main(void){}

//?C89,?函數(shù)返回值未定義

//?C99,?當(dāng)main函數(shù)返回類型為int,?且沒有寫return語句時,默認(rèn)返回0

//?C99,?其他情況下,返回值未定義

類型三,定以返回值為非int

void?main(void)?{return;}

//?C89,?非法(不bb,?就是非法)

//?C99,?允許main函數(shù)返回類型由實現(xiàn)定義,支持void以及其他類型返回值

//?所以你的編譯環(huán)境,不支持C99標(biāo)準(zhǔn)

//?而你的書,比較“新”

//?建議書寫標(biāo)準(zhǔn)宏編譯

#if?__STDC_VERSION__??199901L????????//?標(biāo)準(zhǔn)支持C99

void?main(void)

#elif?defined?__STDC__????????????????//?支持標(biāo)準(zhǔn)C(89/99)

int?main(void)

#else?????????????????????????????????//?如果都不支持,我也很難受

#error?Standard?C?not?support

#endif

文章題目:c語言如何寫main函數(shù) C語言的main函數(shù)
轉(zhuǎn)載源于:http://muchs.cn/article40/dosdiho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供關(guān)鍵詞優(yōu)化、品牌網(wǎng)站建設(shè)網(wǎng)站收錄、網(wǎng)站設(shè)計公司企業(yè)建站、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)