Compartir a través de


Error del compilador C2513

Actualización: noviembre 2007

Mensaje de error

'tipo' : no hay ninguna variable declarada antes de '='
'type' : no variable declared before '='

El especificador de tipo aparece en la declaración sin identificador de variable.

El ejemplo siguiente genera el error C2513:

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

Este error también puede producirse como resultado del trabajo de conformidad del compilador realizado para Visual Studio .NET 2003: ya no se permite la inicialización de un tipo typedef. El estándar no permite la inicialización de un tipo typedef; ahora se genera un error de compilación.

Vea Resumen de cambios importantes en tiempo de compilación para obtener más información.

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

Una alternativa sería eliminar typedef y definir una variable con una lista de inicializador de agregado, pero no es recomendable porque creará una variable con el mismo nombre que el tipo y ocultará el nombre del tipo.