※ 引述《yyshan (布丁珍奶加椰果)》之銘言:
> ※ 引述《leicheong (理昌)》之銘言:
> > 不要被別人誤導了.
> > #define定義的東西在編譯時會自動取代原碼檔中所有相關字串,
> > 因此你在debug時看不到#define定義的值是非常正常的.
> > 用const的話, 定義的值會佔一段記憶體, 再在執行期間使用時
> > 才用mem pointer指向, 做成記憶體使用和實際執行效率上的penalty.
> > 部了少數的compiler外, 在用const的方式的時候compiler甚至
> > 會有每一個reference到該const的module都定義一次該const,
> > 做成進一步的記憶體/模組空間浪費.
> 應該把宣告放在 header
> 定義放在模組之中
> 這樣就不會有重覆定義的問題
請問,這邊的意思是說,header 中要放 extern const int PI;
然後在某個 .c 檔中,放一個 const int PI = 102944;
類似像這樣子比較好嗎?
這樣子的話,會不會有l大所說的浪費問題?
是每一個 .o 檔都會浪費一次嗎?
--
※ Origin: SayYA 資訊站 <bbs.sayya.org>
◆ From: 140.124.181.134