精華區beta Programming 關於我們 聯絡資訊
※ 引述《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