2013-11-04 45 views
0

不是答案是「A」,因爲C中不允許函數重載?在同一個文件可能 C函數超載

不止一個函數具有相同的名稱:

A.從未在C和只有當它們的簽名 用C明確不同++。 B.只有當它們全部被聲明爲靜態時纔有效。 C.如果除1之外的所有數據被聲明爲靜態或常量。 D.只有在沒有使用外部變量的情況下才可以。

+0

是的,我認爲答案是A.但我不知道_unambiguously不同簽名_是什麼意思。 – rodrigo

+5

答案是A,也是因爲所有其他人都沒有任何意義。 –

+0

@rodrigo:從假設答案是正確的後面開始工作,它必須意味着例如「void foo(int)」與「void foo(long)」明確不同,而「void foo(int)」不是在所有實現中明確區別於'void foo(int32_t)',因爲它們可能是相同的類型。但我認爲「unambiguous」這個詞是多餘的:兩個函數簽名或者不同,或者它們不是:-) –

回答

3

C不支持重載。

在C++中,關鍵字staticconst*不能影響超載。

Then A就是答案。


*const一類聲明中恆定的成員函數來作出this指針常量。