→ fragileness:如果你是同一個.cpp可以找到兩個const int a=5566 01/12 23:55
→ fragileness:那才會重複定義吧 01/12 23:56
→ QQ29:不是這樣說吧 cpp是聯集的不是嘛 01/13 00:21
→ nowar100:一份.h給不同的.cpp不會重複定義阿 01/13 00:38
推 oddguy:樓主是否注意過.h檔開頭的“#ifndef”“#define”和最後的 01/13 00:38
→ oddguy:“#endif”? 01/13 00:38
→ nowar100:編譯是一個檔案compile完再編下一個阿 是獨立的事情 01/13 00:40
→ fragileness:如果是變數的話是有可能linker error 01/13 00:52
→ fragileness:const大概是因為在compile階段就已經決定值了 01/13 00:52
→ QQ29:喔板大我意思也不是那樣 = = 不太會表達 01/13 00:58
→ QQ29:to o大 跟ifndef也無關 因為.cpp是分別include 這支.h 01/13 00:58
→ QQ29:板主 我意思是const int a不加上 extern 或是static 就可以給 01/13 01:00
→ QQ29:別人include了 要是沒const這字 應該會出現重複定義才是阿 01/13 01:00
→ QQ29:到底這個現象該如何解釋 還是說compiler會自己加上static? 01/13 01:01
推 LPH66:應該是十樓說的原因 const 在 compile time 已經是定值了 01/13 01:04
→ QQ29:剛剛實驗結果 兩個.cpp印&a 位址差4 好奇怪.不是一份ㄟ 01/13 01:05
→ LPH66:(噗..數錯 是九樓 總之是 fragileness 版友) 01/13 01:05
→ LPH66:這樣的話也許 compiler 是視為類似 static 來處理的樣子 01/13 01:05
→ fragileness:我承認我是前兩句推完覺得不太對才回去查的 XD 01/13 01:08
推 LPH66:看來原PO猜對了 的確是視為類似static(ie.internal linkage) 01/13 01:21