精華區beta Programming 關於我們 聯絡資訊
※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言: : 你舉的是針對const做最佳化的情況, 當然會這樣. : 如果A和B本身都是用#define宣告的話, 代入D的只會是compile time運算後 : A+B的結果而已. (雖然相信有跑optimization下用const也是有相同的結果) 這個例子並不是針對 const 做最佳化的情形, 而是在 compiler time 時無法算出 const 或 #define 值的情形. 只要在 compiler time 不能 解析,使用 const 就會比較佳. : 再說, 我從來都沒有說過在做運算式時#define比const好, 只是單純地 : 想糾正原發文者想把#define全改成const的想法. 你就不需要把我沒說 : 的都自動代入了. 這裡是回應你之前提的使用 const 會比用 #define 增加 cache miss 及會 造成執行效率低的情形, 指出這個說法是不正確的. : Btw, 你有沒有想過, 為什麼在Managed code中M$的編譯器是把const宣告 : 自動變成#define, 而不是把#define宣告變成const? 那你有沒有想過現在 compiler 競爭這麼激烈, 如果使用 #define 能像你 所說的提高執行效率, 為什麼大部份的 compiler 都不去做這麼簡單的改變 來得到好處呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 69.236.127.197