Udostępnij za pośrednictwem


Błąd kompilatora C2513

"type" : brak zmiennej zadeklarowanej przed '='

Specyfikator typu jest wyświetlany w deklaracji bez identyfikatora zmiennej.

Poniższy przykład generuje C2513:

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

Ten błąd można również wygenerować w wyniku pracy kompilatora wykonanej dla programu Visual Studio .NET 2003: inicjowanie definicji typu nie jest już dozwolone. Inicjowanie definicji typów nie jest dozwolone przez standard i teraz generuje błąd kompilatora.

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

Alternatywą może być usunięcie typedef w celu zdefiniowania zmiennej z zagregowaną listą inicjatora, ale nie jest to zalecane, ponieważ spowoduje utworzenie zmiennej o takiej samej nazwie jak typ i ukrycie nazwy typu.