看板 C_and_CPP 關於我們 聯絡資訊
無意間遇到 extern const int array[]; 以我觀念 我會再.cpp寫 const int array[NUM] = {...} link error... 多方嘗試 extern const int array[NUM] = {...} 離奇的成功了 但我不解為啥會需要這樣改 該怎麼解釋... 另外const int 寫在.h 給多個cpp include後 不會爆 redefine 是因為 const 他若多份 就會變成類似static嗎? 因為我看address都不同 請各位解惑 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.87.64.222
purpose:C++ 最莫名其妙的改變之一,const 變成 internal linkage 08/16 19:26
saxontai:這個問題我不相信你在書裡找不到答案。甚至你在版上問過 08/16 19:26
saxontai:的許多問題我都不相信你在書裡會找不到答案。= =" 08/16 19:27
singlovesong:樓上所言甚是 那照你那麼說根本不須要有老師啦.. 08/16 20:21
singlovesong:反證書中都有答案跟知識 問人問題最大的效益在於分享 08/16 20:21
singlovesong:各自的體會 同樣的知識 每個人體會不同就能擦出不同 08/16 20:22
singlovesong:的火花跟樂趣 !! XDD 我是這樣覺得啦 08/16 20:22
saxontai:真會擴大解釋。我可沒說過不能發問。但是發問之前做了什 08/16 21:05
saxontai:麼努力呢?查了什麼資料呢?問過Google了沒?還是只想當 08/16 21:06
saxontai:伸手牌?也許樓上可以看一下QQ29的發文史跟推文中的討論 08/16 21:06
purpose:光就這篇要問的東西來說,也沒什麼體會不體會可言 08/16 21:53
AntaresStar:c++想用const代替#define 所以必定要變internal啊 08/16 22:21
AntaresStar:其實我覺得這題不簡單 普通的書不見得有 08/16 22:22
saxontai:本篇的問題,原PO只需知道extern這個keyword的意義與用途 08/16 22:48
saxontai:若是有C++入門書沒講這部份,那應該換本像樣點的。XD 08/16 22:49
AntaresStar:是說我還真沒看過有人extern跟const一起用 好像很罕見 08/16 23:17
QQ29:Extern我知道用意但不足以讓我解釋搭配const才來此發文,書 08/17 00:04
QQ29:中有寫這case? 08/17 00:04
operand:這題目很簡單嗎 為什麼討論搞得那麼嚴重 08/17 00:28
littleshan:其實如果新手問這問題我是很樂意幫他找答案啦 08/17 00:39
littleshan:可是原po你在這個板混好幾年了,什麼時候才要畢業啊? 08/17 00:39
scwg: '09 年二月首 po, 所以大五了? 08/17 01:19
firose:一樓就講了阿 在 c++ 中 const 變成 internal linkage 08/17 01:26
purpose:namespace { const int nodefine = 44; } 也能代替define 08/17 09:39
purpose:甚至 static const int bj = 4; 可以通吃 C/C++ 又更好 08/17 09:40
Feis:internal linkage 才能放 .h 且在 compile-time 決定值 08/17 10:25
Feis:感覺比較像是想避免寫出 const int a; ? 08/17 10:46
AntaresStar:預設是internal而加extern可以變external 08/17 15:24
AntaresStar:在兩種情況都能做到的前提下 令常用情況為預設較合理 08/17 15:25
AnyaAlstreim:呃... 原PO的問題沒簡單到大家需要這麼嗆吧 08/20 06:26
saxontai:這件事跟原PO問題的難易度無關,跟心態比較有關。否則為 08/20 12:46
saxontai:何作業文要規定必需附上自己有先努力的證明(程式碼)? 08/20 12:47