2013-12-16 74 views
0

靜態未初始化符號是弱符號還是強符號?靜態符號弱或強

未初始化的靜態符號能被強符號覆蓋嗎?

模塊1:

static int y; 

模塊2:

double y = 10; 
+0

gcc有很好的前綴來處理弱符號。 – peterh

+0

C++沒有「模塊」 - 除非在過去的十年中有所改變,否則C也不是。您的意思是翻譯單元 - 即通常是一個.c或.cc/.cpp/.C++文件和它直接文件或間接'#includes'? –

+0

是的,我指的是鏈接時的翻譯單位。 – user3058126

回答

3

號靜態符號是本地定義模塊 - 不是全局的,不能由任何其他模塊被重寫。

+0

模塊1中的'static'隱藏了來自其他模塊的本地「y」。所以我不會收到鏈接錯誤? 請讓我知道,因爲我無法在網上找到它? – user3058126

+0

這是正確的。我不明白爲什麼你不能在網上找到它 - 有_loads_的引用,告訴你什麼'靜態'做。 –

+0

我找不到明確的區別! – user3058126