精華區beta Programming 關於我們 聯絡資訊
※ 引述《tomhuang (阿培仔)》之銘言: > #define A B 會做的事情只是在 source code 中把 A 字串換成 B 字串, > 如此沒有分 type 吧... 是的. #define這裡只定義了「值」, 而長度則看接受的parameter的長度 決定. 因此在windows.h同時是Win16和Win32的header時, 這樣十分方便. > 如果 #define A 100 和 const int A = 100; 比起來, > #define 比較快,那意思應該是說,兩者翻譯出來的組語程式碼, > 立即定址會比直接定址快... 如果某平台的 CPU 沒有立即定址,或是直接定址 > 比較快,又或它只有相對定址,那 #define 一定比較快的說法就不一定對囉..? 比較在代入參數時: #define產生的是push 30 = 6A 1E = 2 bytes const int產生的是push 0x41f00000 = 68 00 00 f0 41 = 5 bytes 執行速度應該是一樣的, 但產生的執行碼大小就差有點遠了. -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: n218103223121.netvigator.com