Compartir a través de


Error del compilador C2513

'tipo': no hay ninguna variable declarada antes de '='

Observaciones

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

Examples

En el ejemplo siguiente se genera el error C2513:

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

Este error puede deberse a una operación de conformidad del compilador para Visual Studio .NET 2003: ya no se permite la inicialización de una definición de tipo. El estándar no permite la inicialización de una definición de tipo, que ahora produce un error del compilador.

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

Una alternativa es eliminar typedef para definir una variable con la lista de inicializadores agregados, pero esto no se recomienda porque crea una variable con el mismo nombre que el tipo y oculta el nombre del tipo.