→ benck:我覺得如果是iOS內建的framework,比較像是c的動態library的 02/13 23:25
→ benck:header而已,因為他不會真的把那些framework包進你的app 02/13 23:26
→ benck:而只是解決compile error而已 02/13 23:26
linker 本來就要想法子減少 code size
以前我曾想過,如果我寫了一千個函式(比如字串啊,繪圖啊等等)
然後主程式就一個 main() 結束退出
那程式要多大?
組合語言的話大概笑了,幾個 byte,剩下的就是給 os 載入的檔案格式 overhead 而已
C 的話,至少要連結啟動模組
那一千個函式呢? 喔..沒呼叫到當然不打包啊
問題來了,它以什麼做邊界取捨?
如果分在4個檔案裏,每個檔案 250 個指令
然後我用了一個 printf 來印 hello world 呢?
也許這不在 C 的標準裏,而是各家 compiler 的最佳化能力高下了
微軟的 Microsoft C (我以前用過,不是 VC 喔) 它的參數有夠多的
和 Borland 出的 TC or BCB 跑起來感覺不同
一個是 link 超快,一個是 link 久一些,但程式較小
我想, 只 link 一個 function 或許也做得到
不過在 VC++,那會以 class 為單位 link
在 VC, 會以 obj (而一個 obj 來自一個 .c) 為單位 link (好像是這樣)
DLL 的話, DLL 地位很像 EXE,它所有用到的指令都要打包,不能有沒連結到的 symbol
因為它不知道別人會呼叫它哪一個公開函式(export function),所以不能捨去
只用 DLL 內的一道指令,整個 DLL 還是載入了;反正它比較像常駐程式
因此如果說沒呼叫到就不打包
那我會以為 framework 比較像 .lib
(.lib 是 .obj 的聚合,沒用到的不會被打包)
→ benck:include quartz可能就有點像include stdio.h這樣 02/13 23:26
→ benck:我覺得你那本書可能是從iOS5改版到現在...ㄎㄎ 02/13 23:28
→ benck:很多函式都從6開始deprecated 02/13 23:29
其實最新的都在網路上
會想要有書,是因為書有中文啊 T^T
我現在在 K 網路, server, TCP/IP
這部份幫到我的是26的網站,要看一堆簡體字..
※ 編輯: HuangJC 來自: 60.251.197.63 (02/13 23:59)