※ 引述《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