在下面的程序中,存儲的值爲return 0
,它實際上代表什麼意思?int main()的返回值存儲在哪裏?
#include <iostream.h>
int main()
{
cout<<"Hello World";
return 0;
}
在下面的程序中,存儲的值爲return 0
,它實際上代表什麼意思?int main()的返回值存儲在哪裏?
#include <iostream.h>
int main()
{
cout<<"Hello World";
return 0;
}
的main()
返回值是通常的過程(例如,如果它是從命令行調用)的返回值。其確切的存儲位置和傳輸機制返回到調用shell(或父進程)是由定位的平臺定義的。
0
(EXIT_SUCCESS
)的返回通常意味着程序無錯完成。非零值反過來表示錯誤 - 您的程序將定義每個值的確切含義。
不需要有「呼叫外殼」。實際上,典型操作系統上的大多數進程可能永遠不會由「shell」創建。 –
@KerrekSB。正確,這是針對某些情況並作爲例子。 – Niall
使用main
的返回值作爲過程的退出狀態。
讓wikipedia描述什麼退出狀態表示:
退出狀態或返回在計算機編程過程的代碼是從一個子進程(或被叫方)通過少數的父進程(或調用者)完成執行特定過程或委託任務時。
因此,您可能會說返回值存儲在父進程的內存中。
中的值的標準的宏EXIT_SUCCESS
(由報頭<cstdlib>
定義)表示該過程是成功的,而EXIT_FAILURE
值表示失敗。
在POSIX系統(以及我用過的其他系統)上,0表示成功,而非0表示失敗。
這不是真的由語言定義。最常見的是,它存儲在x86架構的EAX
寄存器中。控制流程返回到調用main()
的過程,它可以隨心所欲地執行任何操作。
我看到的最常見含義是正常執行(成功)爲零,一個用於泛型錯誤,但每個值都可能意味着程序特有的某些內容。我從來沒有建立過一個程序,通過main從int中返回任何有意義的東西,但是假設你創建了一個添加兩個數字的程序,那麼return的含義就是兩個數字的總和,把main看作是一個函數,你的程序從哪個開始。
取決於操作系統。 – 101010
返回值通知宿主環境您的程序的成功狀態。可以返回的唯一兩個值是'EXIT_SUCCESS'或'EXIT_FAILURE';前者與返回'0'具有相同的效果。不同的平臺可以支持更多種狀態值(例如,Posix允許8位值狀態)。 –