剛剛學函式,不是很懂為什么devc和codeblocks里寫成void會報錯,但是在vc++里就不會。題目只是寫簡單計算器,求大佬講解是否可以用void,但是為什么另外兩個編譯器里又為什么會報錯呢?但是三個編譯器都可以運行。而且如果不寫return,codeblocks里和vc++6.0里還是可以,devc還是不行,,,求大佬講解!
這道題其實不需要回傳什么啊下面的函式里都寫了該回傳什么了....
vc++6.0

devc

codeblocks
uj5u.com熱心網友回復:
嚴謹度不同。據說嚴謹的寫法是不能用void,且不能沒有return的
uj5u.com熱心網友回復:
但是這道題函式里已經有了回傳值,為什么不能用void呢,,,初學者不是很懂void return這些.....
uj5u.com熱心網友回復:
他說不能用就給他改成int 然后隨便return個0或者1。對你現在的學習沒有影響,具體我也不是很懂。
現在不用關心它,其實以后也不怎么需要關心它。以后慢慢就會懂了,大概吧
main函式的回傳值是給呼叫者、或者說啟動者,或者說作業系統吧,應該
uj5u.com熱心網友回復:
可能是不同的作業系統規定不一樣uj5u.com熱心網友回復:
這個應該是編譯器的語法決議的問題吧。入口函式一般都是編譯器規定了回傳型別的 。你不遵守,有些編譯器報錯,有些警告,有些沒反應。uj5u.com熱心網友回復:
void是空的意思,任何一個函式都會有回傳值型別,包括主函式,像主函式的話基本上都是int main()
然后void也是一種型別,不過這個型別就是空
正因為是空,所以說不需要return
因為return的型別是由函式定義時寫在函式名前面的型別決定的
至于為什么在不同的編譯器上有的會報錯,有的會通過,這是版本的原因,具體我也不太清楚,反正就是有些編譯器的版本,他支持c語言沒有更新,像c99什么的

over over
uj5u.com熱心網友回復:
main函式是不能用void的,每個編譯器的語法不同
uj5u.com熱心網友回復:
標準里從來都沒有void main這種寫法,一直都是int mainuj5u.com熱心網友回復:
main函式的標準簽名是這個int main(int argc,char *argv[]),這個函式式連接器與c/c++運行時連接時候要求的,main函式的回傳值一般用作行程退出時的錯誤代碼,以便外部程式判斷行程處理作業是否成功,作業系統啟動行程時候會把命令列引數個數和內容從它的兩個引數傳進來,程式可以獲取并處理,不同的編譯器容忍程度不一樣,寫成上面那種情況就基本能通吃了uj5u.com熱心網友回復:
不同編譯器,編譯器又有不同版本,它們支持的標準不一樣,比如有些編譯器支持C11 C99,但有一些編譯器是不支持的。再者void main() 這種形式到目前為止都不在標準內。所以有些編譯器嚴謹就不給過。uj5u.com熱心網友回復:
編譯器不一樣,編譯器不一樣檢查的語法也不一樣。老的編譯器支持的C、C++老式語法風格,新的編譯器支持新的。因此,要根據編譯器來定是用int,還是void。新的編譯器建議用int,因為int普遍使用
uj5u.com熱心網友回復:
void 是很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久很久以前的用法了,以前的編譯器能通過uj5u.com熱心網友回復:
寫了啊,main必須return int轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/24048.html
標籤:新手樂園
上一篇:資料結構問題
