精華區beta NAOE-87 關於我們 聯絡資訊
※ [本文轉錄自 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