1 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
首先,void main 在新標(biāo)準(zhǔn)中是錯(cuò)誤的。 main() 返回一個(gè)整型給調(diào)用它的程序。int 返回類(lèi)型是可以省略的(但不建議)。
不返回值并不代表函數(shù)沒(méi)用。它可以輸出信息,讀寫(xiě)文件等干很多別的事情。在 C 語(yǔ)言中,也可以給函數(shù)傳遞指針參數(shù),讓函數(shù)修改相應(yīng)的內(nèi)存空間數(shù)據(jù),這樣函數(shù)返回后,傳入指針?biāo)赶虻臄?shù)據(jù)已經(jīng)改變了,變相達(dá)到返回結(jié)果的目的(這在 C 中很常見(jiàn))。
沒(méi)有 return (但函數(shù)未聲明為 void)時(shí)根據(jù)不同的系統(tǒng)/編譯器,可能返回某些值。比如 gcc 編譯器在打開(kāi) -Wall 選項(xiàng)時(shí)會(huì)可能警告你非 void 函數(shù)沒(méi)有返回語(yǔ)句,因?yàn)檫@時(shí)函數(shù)可能返回的值是非常古怪的:
warning: control reaches end of non-void function
聲明為 void 的函數(shù)也可以 return,后面不加?xùn)|西,像這樣:
return;
以使函數(shù)立即返回(比如函數(shù)執(zhí)行出錯(cuò),后面的語(yǔ)句不應(yīng)該被執(zhí)行)。
- 1 回答
- 0 關(guān)注
- 974 瀏覽
添加回答
舉報(bào)