Freigeben über


Compilerfehler C2004

Aktualisiert: November 2007

Fehlermeldung

'defined(id)' erwartet
expected 'defined(id)'

Innerhalb der Klammern, die auf das Präprozessorschlüsselwort folgen, muss ein Bezeichner stehen.

Dieser Fehler kann auch aufgrund einer Verbesserung der Compilerkonformität in Visual Studio .NET 2003 ausgegeben werden: fehlende Klammer in Präprozessordirektive. Wenn die schließende Klammer in einer Präprozessordirektive fehlt, generiert der Compiler einen Fehler.

Weitere Informationen finden Sie unter Übersicht über die wichtigsten Änderungen bei der Kompilierzeit.

Beispiel

Im folgenden Beispiel wird C2004 generiert:

// C2004.cpp
// compile with: /DDEBUG
#include <stdio.h>

int main() 
{
    #if defined(DEBUG   // C2004
        printf_s("DEBUG defined\n");
    #endif
}

Mögliche Lösung:

// C2004b.cpp
// compile with: /DDEBUG
#include <stdio.h>

int main() 
{
    #if defined(DEBUG)
        printf_s("DEBUG defined\n");
    #endif
}