精華區beta Programming 關於我們 聯絡資訊
※ 引述《yoco.bbs@bbs.wretch.cc (眠月..)》之銘言: > ※ 引述《leicheong.bbs@bbs.sayya.org (理昌)》之銘言: > > 「把所有#define都轉成const是一種錯誤的想法」而「不是」 > 可是你之前講的理由已經不成立了 > 還有什麼新的論點嗎? 大概沒有了. 同意用const可以取代#define... 剩下的只有值不值得花這些時間做轉換的問題吧... 但那也沒甚麼 值得討論的. 不過還是有些東西要補充的. 首先, 有些人建議正確的代替#define的宣告是"const auto", 因為 這樣可以避免32bit -> 64bit時的麻煩. 還有就是有些人提到Effective C++, 也可以看看這篇review. http://www.vterrain.org/Implementation/effective.html > 即使是你所說的 .NET > 他在語言層次上提供的也是 const 而不是 #define > 原因在於型別安全跟 scope 等 #define 不具有的優點 > 你說他在換成中間碼的時候用的是實值直套 > 說到底,那也是編譯的一種最佳化 這點已確認不是, 見前面引用的MSDN library link, 當中清楚說明 const宣告在managed code的實作是以#define完成的. -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: ip-84-126-134-202.rev.dyxnet.com