[問題] extern const array?

看板C_and_CPP (C/C++)作者 (我愛阿蓉)時間12年前 (2013/08/16 18:24), 編輯推噓7(7025)
留言32則, 11人參與, 最新討論串1/3 (看更多)
無意間遇到 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

08/16 19:26, , 1F
C++ 最莫名其妙的改變之一,const 變成 internal linkage
08/16 19:26, 1F

08/16 19:26, , 2F
這個問題我不相信你在書裡找不到答案。甚至你在版上問過
08/16 19:26, 2F

08/16 19:27, , 3F
的許多問題我都不相信你在書裡會找不到答案。= ="
08/16 19:27, 3F

08/16 20:21, , 4F
樓上所言甚是 那照你那麼說根本不須要有老師啦..
08/16 20:21, 4F

08/16 20:21, , 5F
反證書中都有答案跟知識 問人問題最大的效益在於分享
08/16 20:21, 5F

08/16 20:22, , 6F
各自的體會 同樣的知識 每個人體會不同就能擦出不同
08/16 20:22, 6F

08/16 20:22, , 7F
的火花跟樂趣 !! XDD 我是這樣覺得啦
08/16 20:22, 7F

08/16 21:05, , 8F
真會擴大解釋。我可沒說過不能發問。但是發問之前做了什
08/16 21:05, 8F

08/16 21:06, , 9F
麼努力呢?查了什麼資料呢?問過Google了沒?還是只想當
08/16 21:06, 9F

08/16 21:06, , 10F
伸手牌?也許樓上可以看一下QQ29的發文史跟推文中的討論
08/16 21:06, 10F

08/16 21:53, , 11F
光就這篇要問的東西來說,也沒什麼體會不體會可言
08/16 21:53, 11F

08/16 22:21, , 12F
c++想用const代替#define 所以必定要變internal啊
08/16 22:21, 12F

08/16 22:22, , 13F
其實我覺得這題不簡單 普通的書不見得有
08/16 22:22, 13F

08/16 22:48, , 14F
本篇的問題,原PO只需知道extern這個keyword的意義與用途
08/16 22:48, 14F

08/16 22:49, , 15F
若是有C++入門書沒講這部份,那應該換本像樣點的。XD
08/16 22:49, 15F

08/16 23:17, , 16F
是說我還真沒看過有人extern跟const一起用 好像很罕見
08/16 23:17, 16F

08/17 00:04, , 17F
Extern我知道用意但不足以讓我解釋搭配const才來此發文,書
08/17 00:04, 17F

08/17 00:04, , 18F
中有寫這case?
08/17 00:04, 18F

08/17 00:28, , 19F
這題目很簡單嗎 為什麼討論搞得那麼嚴重
08/17 00:28, 19F

08/17 00:39, , 20F
其實如果新手問這問題我是很樂意幫他找答案啦
08/17 00:39, 20F

08/17 00:39, , 21F
可是原po你在這個板混好幾年了,什麼時候才要畢業啊?
08/17 00:39, 21F

08/17 01:19, , 22F
'09 年二月首 po, 所以大五了?
08/17 01:19, 22F

08/17 01:26, , 23F
一樓就講了阿 在 c++ 中 const 變成 internal linkage
08/17 01:26, 23F

08/17 09:39, , 24F
namespace { const int nodefine = 44; } 也能代替define
08/17 09:39, 24F

08/17 09:40, , 25F
甚至 static const int bj = 4; 可以通吃 C/C++ 又更好
08/17 09:40, 25F

08/17 10:25, , 26F
internal linkage 才能放 .h 且在 compile-time 決定值
08/17 10:25, 26F

08/17 10:46, , 27F
感覺比較像是想避免寫出 const int a; ?
08/17 10:46, 27F

08/17 15:24, , 28F
預設是internal而加extern可以變external
08/17 15:24, 28F

08/17 15:25, , 29F
在兩種情況都能做到的前提下 令常用情況為預設較合理
08/17 15:25, 29F

08/20 06:26, , 30F
呃... 原PO的問題沒簡單到大家需要這麼嗆吧
08/20 06:26, 30F

08/20 12:46, , 31F
這件事跟原PO問題的難易度無關,跟心態比較有關。否則為
08/20 12:46, 31F

08/20 12:47, , 32F
何作業文要規定必需附上自己有先努力的證明(程式碼)?
08/20 12:47, 32F
文章代碼(AID): #1I3VtZiv (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1I3VtZiv (C_and_CPP)