※ 引述《coldstar.bbs@bbs.cs.nctu.edu.tw (灑落的月光伴著)》之銘言:
> ※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言:
> > 這問題有兩種情況:
> > 在C++中有所謂static lib的東西, 當進行static linking的時候就是
> > 把這些常用的library routine直接寫入執行檔. 我想這種方式下「最佳化」
> > 會有影響. 不過這樣的話會做成「有許多程式碼重複」的不良現像. 產生的
> > 執行檔也會大得多.
> > 至於用DLL的函式庫的話, 大概就沒機會對它動最佳化設定了. 不過記得
> > 在redist. package中的函式庫都是已作最佳化處理的.
> 我不懂的不是這些事
> 而是這些CRT的函式應已編譯完成
> 在編譯器不了解其內部運作的情況下, 仍然會觀察該函式的運作方式
> 然後合乎邏輯的把 "%d" 和 b 轉成 "10" 嗎?
這關乎parameter passing的方式.
我想你找一下關於parameter passing的書/網頁看一下會比較清楚, 關鍵是
只要compiler按照該function declare的方式, 把合適的東西(值或variable
pointer)放到calling convension下指定的位置(例如Pascal calling
conversion下是逆次序PUSH到stack)就可以了.
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: ip-84-126-134-202.rev.dyxnet.com