2 回答

TA貢獻(xiàn)883條經(jīng)驗(yàn) 獲得超454個(gè)贊
main函數(shù)的參數(shù)列表中應(yīng)該是寫東西的。
更準(zhǔn)確地說(shuō),C標(biāo)準(zhǔn)規(guī)定main函數(shù)原型只有以下兩種形式:
int?main(void);??//?#1?不需要參數(shù)的版本 int?main(int?argc,?char?*argv[]);??//?#2?接受命令行參數(shù)的版本
并且,main函數(shù)的返回類型是int,不要寫成void。
所以,main函數(shù)的參數(shù)列表中永遠(yuǎn)要寫東西,不應(yīng)該留空!
你可能看到很多人在不需要main的參數(shù)時(shí),將main的參數(shù)列表留空: int main()
這種寫法雖然可以編譯,但是很不規(guī)范。
C語(yǔ)言規(guī)定:如果函數(shù)不需要接受參數(shù),那么參數(shù)列表中要寫上void(就像main函數(shù)的#1形式那樣)。參數(shù)列表留空則表示該函數(shù)可以接受任何參數(shù),編譯器將不會(huì)對(duì)傳參進(jìn)行類型檢查,這樣的代碼是有安全隱患的。 所以不僅對(duì)于main函數(shù),你寫的所有函數(shù),只要不打算接受參數(shù),都應(yīng)該明確地在參數(shù)列表中寫上void。

TA貢獻(xiàn)1017條經(jīng)驗(yàn) 獲得超1032個(gè)贊
一般來(lái)說(shuō)沒(méi)有參數(shù),但是可以有參數(shù),特別是指針參數(shù)void main(int args,char * argv[])
- 2 回答
- 0 關(guān)注
- 3611 瀏覽
添加回答
舉報(bào)