Vorwärtsdeklaration von Unions in C
Vorwärtsdeklaration von Unions in C
Weiß jemand von euch wie ich in C eine Vorwärtsdeklaration eines Unions erstellen kann?
Ich darf für meine Aufgabe nämlich leider kein C++ verwenden
Ich darf für meine Aufgabe nämlich leider kein C++ verwenden
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Vorwärtsdeklaration von Unions in C
Was spricht gegenKerli hat geschrieben:Weiß jemand von euch wie ich in C eine Vorwärtsdeklaration eines Unions erstellen kann?
Code: Alles auswählen
union bla;
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Vorwärtsdeklaration von Unions in C
Der KompilerXin hat geschrieben:Was spricht gegenKerli hat geschrieben:Weiß jemand von euch wie ich in C eine Vorwärtsdeklaration eines Unions erstellen kann??Code: Alles auswählen
union bla;
Code: Alles auswählen
ex2.c:100: Fehler: expected specifier-qualifier-list before »Primitive«
Code: Alles auswählen
Primitive *next_element_;
Code: Alles auswählen
union Primitive;
In C++ ist das kein Problem aber mit C und damit auch mit dem gcc geht das so nicht. Und in der Vorlesung wird nun einmal C verlangt.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Vorwärtsdeklaration von Unions in C
Glaube ich nichtKerli hat geschrieben:Der KompilerXin hat geschrieben:Was spricht gegenKerli hat geschrieben:Weiß jemand von euch wie ich in C eine Vorwärtsdeklaration eines Unions erstellen kann??Code: Alles auswählen
union bla;
Da würde ich als C-Compiler auch meckern.Kerli hat geschrieben:Die dazugehörige Zeile schaut so aus:Code: Alles auswählen
ex2.c:100: Fehler: expected specifier-qualifier-list before »Primitive«
Code: Alles auswählen
Primitive *next_element_;
Code: Alles auswählen
union Primitive * next_element_; // <- blöde Namensgebung
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Vorwärtsdeklaration von Unions in C
Ohne 'union' vorne dran. Das ist ein Member eines Union.Xin hat geschrieben:Da würde ich als C-Compiler auch meckern.
Code: Alles auswählen
union Primitive * next_element_; // <- blöde Namensgebung
Jetzt funktioniert es:
Code: Alles auswählen
typedef union Primitive Primitive;
typedef struct
{
int type_;
char *id_;
Primitive *next_element_;
Point start_;
Point end_;
} Line;
// ...
union Primitive
{
struct
{
int type_;
char *id_;
Primitive *next_element_;
};
Line line_;
Rect rect_;
Circle circle_;
Text text_;
Polygon polygon_;
};
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Vorwärtsdeklaration von Unions in C
??Kerli hat geschrieben:Ohne 'union' vorne dran. Das ist ein Member eines Union.
Code: Alles auswählen
union Primitive;
typedef struct
{
int type_;
char *id_;
union Primitive *next_element_;
Point start_;
Point end_;
} Line;
// ...
union Primitive
{
struct
{
int type_;
char *id_;
union Primitive *next_element_;
};
Line line_;
Rect rect_;
Circle circle_;
Text text_;
Polygon polygon_;
};
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Vorwärtsdeklaration von Unions in C
Das hat sich aufXin hat geschrieben: Kerli hat geschrieben:Ohne 'union' vorne dran. Das ist ein Member eines Union.
??
bezogen.Xin hat geschrieben:union Primitive * next_element_; // <- blöde Namensgebung
Ich mag typedef eigentlich auch nicht, aber in C ist das so nicht möglich.Xin hat geschrieben:sollte genauso gehen. Ich persönlich mag Typedef nicht.Code: Alles auswählen
union Primitive; typedef struct { int type_; char *id_; union Primitive *next_element_; Point start_; Point end_; } Line; // ... union Primitive { struct { int type_; char *id_; union Primitive *next_element_; }; Line line_; Rect rect_; Circle circle_; Text text_; Polygon polygon_; };
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Vorwärtsdeklaration von Unions in C
Du willst mir sagen, dassKerli hat geschrieben:Ich mag typedef eigentlich auch nicht, aber in C ist das so nicht möglich.Xin hat geschrieben:sollte genauso gehen. Ich persönlich mag Typedef nicht.
Code: Alles auswählen
union bla;
union bla * foo;
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Re: Vorwärtsdeklaration von Unions in C
Nein ich will sagen, dassXin hat geschrieben:Du willst mir sagen, dass
Vom Compiler nicht akzeptiert wird?Code: Alles auswählen
union bla; union bla * foo;
Code: Alles auswählen
union bla;
union bla2
{
bla * p;
};
Er erlaubt anscheinend keine Member die nicht mit typedef definiert worden sind.
"Make it idiot-proof and someone will invent an even better idiot." (programmers wisdom)
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
OpenGL Tutorials und vieles mehr rund ums Programmieren: http://www.tomprogs.at
- Xin
- nur zu Besuch hier
- Beiträge: 8859
- Registriert: Fr Jul 04, 2008 11:10 pm
- Wohnort: /home/xin
- Kontaktdaten:
Re: Vorwärtsdeklaration von Unions in C
Das ist klar, weil das nicht C entspricht.Kerli hat geschrieben:Er erlaubt anscheinend keine Member die nicht mit typedef definiert worden sind.
Du kannst ja auch nicht
Code: Alles auswählen
struct bla;
struct bla2
{
bla * p;
};
Dass Classes und Structs in C++ direkt als Typ definiert werden ist in C nicht so. Und Unions werden afaik nirgendwo implizit als Typ definiert.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.
Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.