我新近使用CODE :: BLOCKS + mingw編譯器 如果我在程序結束時沒有鍵入return 0,我可以看到main()返回一些整數,我得知main()返回0推斷程序執行成功。我沒有發現我的代碼有任何缺陷,爲什麼它返回一些整數?main()返回其值嗎?
其次 任何函數將其值返回給其函數調用,main()返回其值的位置?
我新近使用CODE :: BLOCKS + mingw編譯器 如果我在程序結束時沒有鍵入return 0,我可以看到main()返回一些整數,我得知main()返回0推斷程序執行成功。我沒有發現我的代碼有任何缺陷,爲什麼它返回一些整數?main()返回其值嗎?
其次 任何函數將其值返回給其函數調用,main()返回其值的位置?
C++標準說,如果你不明確返回值,編譯器必須生成代碼,如果你輸入:
return 0;
究竟是什麼返回值的手段,以及它如何被返回是實施具體。對於大多數操作系統,返回值成爲進程的退出代碼。
main()
將其值返回給系統(間接地,我們不討論這一點)。
當控制到達帶有返回值的函數的末尾時(例如,main()
;將返回的內容是寄存器中已存在的用於保存返回值的內容(有時這是最後一個值。聲明中,有時不)
道德,當然是,你應該總是最後你的主,返回0;
的main()返回其值設置爲系統,然後該系統可以使用它作爲一個。錯誤或成功代碼在Linux中,您可以這樣做:
$ yourprog && someotherprog
它將運行yourprog,然後someotherprog,當且僅當yourprog返回0
在Windows中您可以使用批處理腳本的if errorlevel
成語來檢查程序的返回值。另外,如果你從另一個進程(與fork()
或CreateProcess()
什麼的),你可以稍後檢索其退出狀態,並採取相應的行動。
main()將它的值返回給加載器(系統)。它表示程序是否成功執行。 return(0);由於成功未定義,因此表示成功:D!
''在'stdlib.h'中定義'EXIT_SUCCESS'。 – dreamlax 2013-10-13 05:46:42
這隻適用於C++;沒有明確定義爲使用的語言。 – 2010-04-14 13:29:40
@Williham問題標記爲「C++」 – 2010-04-14 13:30:25
它也被標記爲「C」。而且由於這個問題的出現,他顯然沒有使用C++編譯器。 (至少不符合規範) – 2010-04-14 13:31:15