Erro do compilador C2513

'*tipo': nenhuma variável declarada antes de '='

O especificador de tipo aparece na declaração sem nenhum identificador de variável.

O seguinte exemplo gera C2513:

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

Esse erro também pode ser gerado como resultado de um trabalho de conformidade do compilador feito para o Visual Studio .NET 2003: a inicialização de um typedef não é mais permitida. A inicialização de um typedef não é permitida por padrão, e agora gera um erro do compilador.

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

Uma alternativa seria excluir typedef para definir uma variável com uma lista de inicializadores agregados, mas isso não é recomendado porque criará uma variável com o mesmo nome do tipo e ocultará o nome do tipo.