2016-04-07 12 views
-2

Dies ist eine Frage über die C-Sprache,verlinkte Liste von alternierendem Strukturtyp in c

Ich versuche, Strukturen mit zwei Arten zu schaffen, A und B. so, dass ich eine verknüpfte Liste erklären kann A->B->A->B...

Meine Frage ist, sollte ich A vor B definieren oder B vor A definieren oder gibt es eine Art Bootstrapping-Methode?

+0

Ich kann nicht herausfinden, wie die letzten Teil bezieht sich auf die Frage "Wie deklariere ich die Typen so, dass ich eine verknüpfte Liste erstellen kann A-> B-> A-> B -> ...?" – immibis

+1

Was hast du auch versucht, und wie hat es nicht funktioniert? – immibis

+2

Bekam meine Kristallkugel. Es besagt, dass Sie das versucht haben und Kompilierungsfehler hatten. Und Sie müssen Ihre Strukturen weiterleiten. Gute Arbeit, Kristallkugel! =) – paddy

Antwort

1

Ihr Problem ist, dass jeder Typ über den anderen wissen muss, um definiert werden zu können. Es spielt keine Rolle, in welcher Reihenfolge Sie Ihre Typen definieren. Sie müssen jedoch dem ersten definieren, dass der zweite existiert, aber später definiert werden. Dies wird Vorwärtsdeklaration genannt, siehe den Link in BostonBooks Kommentar. In C (und C++ auch btw), wird dies als aussehen:

struct B; 
struct A 
{ 
    struct B* next; 
}; 
struct B 
{ 
    struct A* next; 
}; 

(ich den Code von MM Kommentar gestohlen ...)

Verwandte Themen