你其實問了一個很複雜的問題,牽涉到一個應用程式的生死過程,給你簡單講解如下:
(1)一個Windows應用程式的執行過程是:
作業系統呼叫C/C++執行期啟動函式->啟動函式做完所有初始化工作後->呼叫應用程式進入點函式(即我們的主函式)
(2)而主函式返回時->啟動函式便呼叫C/C++執行期的exit函式。
(3)通常我們的主函式有這樣一個整型返回值,其意義為:當主函式返回時,這個返回值就會傳遞給這個exit函式作為引數,exit函式先做完所有清理工作,然後呼叫作業系統的ExitProcess函式並將返回值傳遞給它,這使得作業系統能夠撤銷程序並設定退出程式碼。通常0表示正常返回,非零的其他值表示出現錯誤。
(4)我們的主函式可以定義為類似void main()這個樣子,即無返回值,那麼這個時候就不能用return語句把退出程式碼傳遞給父程序或作業系統,此時作業系統可以撤銷程序但不會設定退出程式碼。當然在這種情況下,你還是有辦法設定退出程式碼,那就是顯式地呼叫exit(退出程式碼)。
int main()
{
float a = 1.0;
printf("%f", a); // 在標準輸出裝置(一般為計算機的顯示器)上,輸出a的值
return 0; // 正常返回
}
你其實問了一個很複雜的問題,牽涉到一個應用程式的生死過程,給你簡單講解如下:
(1)一個Windows應用程式的執行過程是:
作業系統呼叫C/C++執行期啟動函式->啟動函式做完所有初始化工作後->呼叫應用程式進入點函式(即我們的主函式)
(2)而主函式返回時->啟動函式便呼叫C/C++執行期的exit函式。
(3)通常我們的主函式有這樣一個整型返回值,其意義為:當主函式返回時,這個返回值就會傳遞給這個exit函式作為引數,exit函式先做完所有清理工作,然後呼叫作業系統的ExitProcess函式並將返回值傳遞給它,這使得作業系統能夠撤銷程序並設定退出程式碼。通常0表示正常返回,非零的其他值表示出現錯誤。
(4)我們的主函式可以定義為類似void main()這個樣子,即無返回值,那麼這個時候就不能用return語句把退出程式碼傳遞給父程序或作業系統,此時作業系統可以撤銷程序但不會設定退出程式碼。當然在這種情況下,你還是有辦法設定退出程式碼,那就是顯式地呼叫exit(退出程式碼)。
int main()
{
float a = 1.0;
printf("%f", a); // 在標準輸出裝置(一般為計算機的顯示器)上,輸出a的值
return 0; // 正常返回
}