2016-11-10 20 views
-1

Zwei Fehler erscheinen zu kompilieren, wenn ich versuche, dies zu kompilieren:Fehler aufgetreten beim Versuch,

typedef struct { 

int account_number; 
float balance; 


}accounts[2]; 


typedef struct{ 
char name[40]; 
accounts[2] 


}client[3]; 

Die Fehler sind:

prac5_2.c:16:8: error: expected identifier or ‘(’ before ‘[’ token 
accounts[2] 

prac5_2.c:18:2: error: expected ‘;’ before ‘client’ 
}client[3]; 

Und ich weiß nicht, was ich für sie schreiben um richtig zu sein

Antwort

0

Die Zeile accounts[2] in der zweiten typedef verursacht den Fehler.

den Code Ändern Sie den specfication übereinstimmen. Beispielsweise können Sie die Zeile löschen oder einen Variablennamen und ein Semikolon zur Zeile hinzufügen, um den Fehler zu beheben.

typedef struct{ 
    char name[40]; 
    /* accounts[2] */ 
    accounts hoge[2]; 
}client[3]; 

anzumerken, dass der Code accounts als eine Art erklärt, die 2-Element-Array des struct account_number und balance aufweist. accounts hoge[2]; wird 2x2 Array der Struktur sein. So wird client ein Typ sein, der ein 3-Element-Array ist.


Wenn Sie wollen einfach nur Typen erstellen, die Strukturen sind, nicht Arrays von Strukturen, können Sie wie folgt schreiben:

typedef struct { 
    int account_number; 
    float balance; 
}accounts_t; 
accounts_t accounts[2]; 


typedef struct{ 
    char name[40]; 
    accounts_t accounts[2]; 
}client_t; 
client_t client[3]; 

Beachten Sie, dass in diesem Code accounts im strucct client_t 1- ist Dimention Array von 2 Elementen, nicht 2x2 Array.

+0

@ ManuelGonzález [Korrigierte Code funktioniert] (http://melpon.org/wandbox/permlink/R1CHr8038cJ8T9Fa). Welchen Fehler bekommst du? – MikeCAT

+0

Nach tun, was Sie gesagt haben diese Fehlermeldung angezeigt: prac5_2.c: In der Funktion 'main': prac5_2.c: 24: 14: Fehler: expected Ausdruck vor 'Kunden' scanf ("% s", Client [0]. Name); –

+0

@ ManuelGonzález Wie gesagt, 'Klient' keine Variable ist, sondern ein Typname. Deklarieren Sie Variablen mit dem Typ und verwenden Sie sie stattdessen. – MikeCAT

Verwandte Themen