精華區beta Programming 關於我們 聯絡資訊
※ 引述《leicheong (理昌)》之銘言: > 不要被別人誤導了. > #define定義的東西在編譯時會自動取代原碼檔中所有相關字串, > 因此你在debug時看不到#define定義的值是非常正常的. > 用const的話, 定義的值會佔一段記憶體, 再在執行期間使用時 > 才用mem pointer指向, 做成記憶體使用和實際執行效率上的penalty. > 部了少數的compiler外, 在用const的方式的時候compiler甚至 > 會有每一個reference到該const的module都定義一次該const, > 做成進一步的記憶體/模組空間浪費. 應該把宣告放在 header 定義放在模組之中 這樣就不會有重覆定義的問題 > 我不能想像當你把所有#define都換成const的時候, 你的執行 > 碼會「膨脹」多少. -- ※ Origin: SayYA 資訊站 <bbs.sayya.org> ◆ From: arisa.csie.org