3 回答

TA貢獻1813條經驗 獲得超2個贊
你其實問了一個很復雜的問題,牽涉到一個應用程序的生死過程,給你簡單講解如下:
(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; // 正常返回
}

TA貢獻1827條經驗 獲得超8個贊
int main()
是指main()它會有return語句,并且return的是一個int 類型的東東。如程序里面有
int a;
return a;
這種的。
但大多是void main()的。即無返回值。
- 3 回答
- 0 關注
- 1187 瀏覽
添加回答
舉報