Поделиться через


Ошибка компилятора C2513

"type" : переменная не объявлена до "="

Описатель типов отображается в объявлении без идентификатора переменной.

Следующий пример приводит к возникновению ошибки C2513:

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

Эта ошибка также может быть создана в результате выполнения работы компилятора по соответствию Visual Studio .NET 2003: инициализация typedef больше не разрешена. Инициализация typedef не допускается стандартом и теперь создает ошибку компилятора.

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

Альтернативой будет удаление typedef для определения переменной со списком агрегатного инициализатора, но это не рекомендуется, так как она создаст переменную с тем же именем, что и тип, и скрыть имя типа.