※ [本文轉錄自 C_and_CPP 看板]
發信人: mhhsu.bbs@cszone.cc.ntu.edu.tw (Set Limitation ), 看板: C_and_CPP
標 題: [C]關於進入 main() 之前..
發信站: 程式設計樂園(CSZone) (Mon Nov 23 13:32:05 1998)
轉信站: Ptt!CSZoneNews!CSZone
順便來解釋一下為什麼 main() 最好宣告為 int () 吧.
main() 並不是一個程式最早的進入點.
在 main() 之前, compiler 會塞入一段 startup code.
這一段碼通常是用來準備程式該跑的環境.
比方設定暫存器, 堆疊, 準備一些資料初值等等的雜事.
定完了才真正進入 main().
這一段 startup code 通常是根據 int main() 來寫的.
void () 的函式, 呼叫和返回程序和一般函式有可能不同.
如果把 main() 宣告成 void ().
在 startup code 呼叫 main() 的過程當中也許會出錯.
當然這情形不是一定發生.
只不過要是某天出問題, 說不定很難找出癥結. :)
可以翻一下那些所謂 bible 級的書.
裡頭的 main() 都是清一色的 int ().
寧可最後塞一行沒什麼意義的 return.
我知道很多書上會用 void () 的方式來宣告 main().
不過這是有問題的.
而且不只是哲學、邏輯上的問題, 它是蠻實際的問題. :)
--
小魚轉來的
有沒有人知道「startup」的細節呢?
--
Much ado about nothing.
--
※ Origin: 程式設計樂園 ◆ From: r215-77.D5-214.ncu.edu.tw
--
好無聊
--
※ 發信站: 批踢踢實業坊(ptt.twbbs.org)
◆ From: h178.s87.ts.hin