structs
-
Moinsen,
gibt es innerhalb einer struct eine möglichkeit in C einzelne elemente auswählen zu können?
z.B. hab ich zwei structs, die sehr ähnlich aufgebaut sind
struct { int a int b char c int d char e };
alle besitzen die variablen a, b, und e - und nur die zweite struct besitzt z.B. noch c und d dazu:
gibt es eine möglichkeit trotzdem nur eine struct zu schreiben oder muss ich zwei verschiedene structs anlegen?
lisa
-
du könntest sowas machen
struct a { int a; char b; long d; } struct b { struct a a; short b; float c; }
aber besser zwei unabhängige structs, wenn beide nix miteinander zu tun haben.
-
gehen würde auch sowas:
struct mit { int a; int b; char c; int d; char e; }; struct ohne { int a; int b; int d; }; union mit_ohne { struct mit alles; struct ohne weniger; }; struct a { union mit_ohne daten; int mit_oder_ohne;//0 für ohne, 1 für mit c und d...irgendwieso };
über a ist dann alles erreichbar...z.b. so:
struct a test; test.mit_oder_ohne=1; if(test.mit_oder_ohne) strcpy(&test.daten.alles.c,"b");
die struct a ist nur, damit du dir irgendwo merken kannst, ob du mit "mit" oder mit "ohne" arbeitest...sollte auch über die union direkt laufen, kann aber u.U. zu fehlern führen.
mfg Flo