2010-10-08 14 views
20

ich diesen Strukturtyp Definition haben:erwartet Spezifizierer-Qualifizierer-Liste vor

typedef struct { 
    char *key; 
    long canTag; 
    long canSet; 
    long allowMultiple; 
    confType *next; 
} confType; 

Beim Kompilieren, gcc führt diesen Fehler:

conf.c:6: error: expected specifier-qualifier-list before ‘confType’ 

Was bedeutet das? Es scheint nicht mit anderen Fragen mit diesem Fehler verbunden zu sein.

+0

mögliche Duplikate von [Verknüpfte Liste in C, kein Mitgliedsfehler] (http://stackoverflow.com/questions/3869110/linked-list-in-c-no-member-error) –

+0

@ Prasoon: Ja, aber Die angenommene Antwort ist unvollständig. – schot

+0

@schot: Leider habe ich die Kommentare nicht gesehen. Korrigiert es. Vielen Dank. –

Antwort

22

Sie haben confType verwendet, bevor Sie es deklariert haben. (Fürs nächste). Stattdessen versuchen Sie dies:

typedef struct confType { 
    char *key; 
    long canTag; 
    long canSet; 
    long allowMultiple; 
    struct confType *next; 
} confType; 
+0

Danke! Jetzt ist es offensichtlich, dass ich das gesehen habe. –

+0

@Delan Azabani: Danke für die Korrektur meiner Antwort. :) – JoshD

14

JoshD Antwort jetzt richtig ist, ich in der Regel für eine gleichwertige Variante gehen:

typedef struct confType confType; 

struct confType { 
    char *key; 
    long canTag; 
    long canSet; 
    long allowMultiple; 
    confType *next; 
}; 

Wenn Sie wollen nur undurchsichtig Zeiger belichten, setzen Sie die typedef in Ihrem Header-Datei (Schnittstelle) und die struct Deklaration in Ihrer Quelldatei (Implementierung).

Verwandte Themen