Partager via


Erreur du compilateur C2513

'type' : aucune variable déclarée avant '='

Le spécificateur de type apparaît dans la déclaration sans identificateur de variable.

L’exemple suivant génère l’erreur C2513 :

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

Cette erreur peut également être générée suite à un travail de conformité du compilateur effectué pour Visual Studio .NET 2003 : l’initialisation d’un typedef n’est plus autorisée. L’initialisation d’un typedef n’est pas autorisée par la norme et génère désormais une erreur du compilateur.

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

Une alternative consiste à supprimer typedef pour définir une variable avec la liste d’initialiseurs d’agrégation, mais elle n’est pas recommandée, car elle crée une variable portant le même nom que le type et masque le nom du type.