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


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

Обновлен: Ноябрь 2007

Сообщение об ошибке

"тип": нет переменных, объявленных перед "="
'type' : no variable declared before '='

Спецификатор типа в объявлении не имеет идентификатора переменной.

Следующий пример приводит к возникновению ошибки 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, чтобы определить переменную с помощью списка составных инициализаторов, однако делать это не рекомендуется, так как при этом будет создана переменная с тем же именем, что и тип, а имя типа будет скрыто.