2016-04-09 4 views
-3

Warum kommt dieser Fehler, obwohl ich Typdef nicht verwendet habe?'Fehler' Speichergröße von 'Identität' ist nicht bekannt

int main() 
{  
    struct ident identity; 
    identity.serial=10; 
    printf("%d",identity.serial); 
    return 0; 
} 

struct ident 
{ 
    int serial; 
}; 
+0

Weil Sie die Struktur 'ident' definieren, bevor sie deklariert wird. Verschieben Sie die Strukturdeklaration über main. – Unimportant

+1

Da der C-Compiler ein Single-Pass-Compiler ist, liest er die Datei genau einmal von Anfang bis Ende. Also muss 'struct ident' definiert werden * bevor * es benutzt wird. Verschieben Sie die Strukturdefinition mit anderen Worten an den Anfang der Datei. – user3386109

+0

müssen Sie zunächst stufs deklarieren und dann die stufs verwenden. (was auch immer) – milevyo

Antwort

0

Dieser Code funktioniert gut:

struct ident 
{ 
    int serial; 
}; 

int main() 
{  
    struct ident identity; 
    identity.serial = 10; 
    printf("%d", identity.serial); 
    return 0; 
} 

Sie eine Struktur vor der Verwendung erklären.

Verwandte Themen