2016-07-19 14 views
1

Ich habe eine Header-Datei erstellt, in der ich eine struct node deklariert und ein Objekt als List dieser Struktur erstellt habe. Hier ist meine Header-Datei link.h:Ungültige Operanden zum binären Ausdruck ('struct node' und 'struct node')

struct node 
{ 
    void *data; //Generic data 
    struct node *next; 
}List; 

driver.c:

#include "link.h" 
int main() 
{ 
    List list1; 
    return 0; 
} 

Wenn ich eine Aussage wie

List list1; //in the driver file 

Es zu schreiben versuchen wirft ein Fehler, der sagt:

ungültige Operanden für Binärausdruck ('struct node' und 'struct node')

Verwendung der nicht deklarierten Kennung 'list1'; meinst du "Liste"?

Was könnte das verursachen?

+5

glücklich sein zu helfen ... aber Sie müssen den entsprechenden Code schreiben ... – 4386427

+0

Zeigen Sie Ihren Code (und die genaue Fehlermeldung). – melpomene

+2

Bitte geben Sie die Definition der Liste –

Antwort

0

Wahrscheinlich Ihre Absicht ist List ist ein Alias ​​für struct node haben, so müssen Sie typedef verwenden, sonst List kein Typ ist, sondern eine Instanz-Variable der Struktur.

typedef struct node 
{ 
    void *data; //Generic data 
    struct node *next; 
}List;