Freigeben über


Compilerfehler C2513

Aktualisiert: November 2007

Fehlermeldung

'Typ': Keine Variable vor '=' deklariert
'type' : no variable declared before '='

Der Typspezifizierer steht in einer Deklaration, die keinen Variablenbezeichner enthält.

Im folgenden Beispiel wird C2513 generiert:

// C2513.cpp
int main() {
   int = 9;   // C2513
   int i = 9;   // OK
}

Dieser Fehler kann auch aufgrund einer Verbesserung der Compilerkonformität in Visual Studio .NET 2003 ausgegeben werden: Initialisierungen einer typedef sind nicht mehr zulässig. Die Initialisierung einer typedef ist gemäß Standard nicht zulässig und verursacht jetzt einen Compilerfehler.

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

// C2513b.cpp
// compile with: /c
typedef struct S {
   int m_i;
} S = { 1 };   // C2513
// try the following line instead
// } S;

Als Alternative könnte typedef gelöscht werden, um eine Variable mit einer Aggregatinitialisiererliste zu definieren. Dies ist jedoch nicht empfehlenswert, da hierdurch eine Variable mit demselben Namen des Typs erstellt und der Typname versteckt wird.