Freigeben über


Compilerwarnung (Stufe 1) C4005

Aktualisiert: November 2007

Fehlermeldung

'Bezeichner' : Makro-Neudefinition
'identifier' : macro redefinition

Der Makrobezeichner wurde zweimal definiert. Der Compiler verwendet die zweite Makrodefinition.

Dieser Fehler kann eine der folgenden Ursachen haben:

  1. Ein Makro in der Befehlszeile und im Code wurde mit einer #define-Direktive definiert.

  2. Aus Includedateien importierte Makros.

Beachten Sie die folgenden Vorschläge zur Problembehebung:

  1. Entfernen Sie eine der Definitionen.

  2. Verwenden Sie eine #undef-Direktive vor der zweiten Definition.

Im folgenden Beispiel wird C4005 generiert:

// C4005.cpp
// compile with: /W1 /EHsc
#include <iostream>
using namespace std;

#define TEST "test1"
#define TEST "test2"   // C4005 delete or rename to resolve the warning

int main() {
   cout << TEST << endl;
}