分享方式:


編譯器錯誤 C2084

函式 ' function ' 已經有主體

已定義函式。

在 Visual Studio 2002 之前,

  • 編譯器會接受多個範本特製化,這些特製化解析為相同的實際類型,雖然永遠無法使用其他定義。 編譯器現在會偵測到這些多個定義。

  • __int32int 會被視為不同的類型。 編譯器現在會將 __int32 視為 的同義字 int 。 這表示編譯器會在 和 int 上多載函式並 __int32 發出錯誤時偵測多個定義。

範例

下列範例會產生 C2084:

// C2084.cpp
void Func(int);
void Func(int) {}   // define function
void Func(int) {}   // C2084 second definition

若要更正此錯誤,請移除重複的定義:

// C2084b.cpp
// compile with: /c
void Func(int);
void Func(int) {}