main函式的多種寫法

2021-07-11 19:25:45 字數 1265 閱讀 2697

int main( int argc, char **argv )

int main( void )

最好main 函式向系統返回乙個整型,表示函式正常結束。我只推薦上面兩種寫法

關於main函式的其他幾種寫法,也列舉出來做比較

void main( )

我們一般使用這種寫法,第一很多書上也是這樣寫的,第二不要int也能正常編譯(只是目前你接觸的編譯環境可以通過編譯),何必要加。雖然在一些編譯器中,void main 可以通過編譯(如 vc6),並且編譯器對於你寫的void main,在實際編譯的時候還是預設返回乙個int . 但並非所有編譯器都支援 void main ,因為標準中從來沒有定義過 void main。我們要考慮程式的可擴充套件性,養成乙個良好的習慣。

int main(  )

為什麼這種寫法還是不好呢?針對上面說的問題已經做了修改。這種寫法會產生歧義,函式main是有引數,還是沒有引數。你可能覺得很奇怪,它明明是沒有引數的,但編譯器可不這麼認為,不同編譯器可能有不同解釋。原因在與舊式**風格的相容。。

在k&r中,形式引數的型別以單獨的列表進行宣告

int find( key, key2 )

int key;

double key2;

也許你從來沒有看到過這種寫法,這是以前舊式的**風格,為了對以前的**進行相容,所以很多編譯器還是支援這種寫法。這種寫法,編譯器只會記住函式的返回型別,並不會檢查函式的引數個數和型別是否匹配。你寫了這麼多,編譯器就只記住 int find() ;

#includeint fun();

main()

int fun( int a, int b)

上述例子,編譯完全沒有問題。可是fun明明有引數,

#includedouble fun();

當函式fun宣告返回值改為double ,編譯器就會報錯。

所以,只能通過這種形式 main( void ),表明main函式沒有引數。說到底就是保持程式可移植性。

還有這種寫法

main(  )

都是不規範的

python中main 函式寫法

usr bin python import sys import getopt class usage exception def init self,msg self.msg msg defmain ar none if ar is none ar sys.ar try try opts,args...

vue函式定義的多種寫法

vue定義方法 methods a e,c a function e,c 在js中箭頭函式根據是否書寫大小括號可分為以下四種情況。不省略 const fun value 省略小括號 const fun value 省略大括號 const fun value value 省略大括號與小括號 const...

委託的多種寫法

一 委託呼叫方式 1.最原始版本 delegate string plusstringhandle string x,string y class program static string plusstring string x,string y 2.原始匿名函式版 去掉 plusstring 方...