struct oder union ?

30/01/2009 - 14:54 von Robert Hartmann | Report spam
Hallo zusammen,

Gegeben sei folgender Struct.

typedef struct NodeData
{
long x ;
long y ;
long z ;
// und noch mehr ...
} NodeData ;


Man hat auf x, y und z direkt Zugriff:

NodeData test;
test.x = 42;
test.y = 42;
test.z = 42;

Nun würde es mein geplantes Vorhaben
etwas erleichtern, wenn ich den Struct
so veràndern könnte, dass ich sowohl
test.x = 42
benutzen könnte wie auch
test.value[0]B


Sicherlich wàre es möglich

typedef struct NodeData
{
long value[3];
long x ;
long y ;
long z ;
// und noch mehr ...
} NodeData ;

zu benutzen und beim erstellen von "Instanzen"
sowohl x,y,z wie auch value[0],value[1],value[2]
mit Werten zu belegen.

Ich würde aber gerne, dass value eben genau
den selben Speicherbereich verwendet wie x, y, z,
so dass ich die Wertzuweisung eben tatsàchlich
nur 3 Mal und nicht 6 Mal machen müsste
und der Speicher nicht unnötiger weise nochmal
belegt würde.


Ich wàre für Ideen dankbar.

Beste Grüße,
Robert
 

Lesen sie die antworten

#1 Robert Hartmann
30/01/2009 - 15:23 | Warnen spam
Hallo,

Robert Hartmann schrieb:

Nun würde es mein geplantes Vorhaben
etwas erleichtern, wenn ich den Struct
so veràndern könnte, dass ich sowohl
test.x = 42
benutzen könnte wie auch
test.value[0]B


Ich wàre für Ideen dankbar.



Meine Idee ist nun:

typedef struct NodeData{
//weitere Eigenschaften ...
size_t index;
union Koords{
long value[3];
struct Axis{
long x;
long y;
long z;
}Axis;
}Koords;
}tNodeData;

Geht das auch noch anders ?

Besten Dank,
Gruß Robert

Ähnliche fragen