noxXx
PC-Selbstbauer(in)
Servus PCGHX-Gemeinde,
ich lese gerade als Vorbereitung auf mein Info-Studium an der Uni Bonn das Buch "Einstieg in C++" von Arnold Willemer (falls das jemand kennt/besitzt). Ich finde das Buch soweit auch gut, nur mit dem Befehl 'union' hab ich gerade ein Problem.
Im Buch (S.152) steht als Beispiel zur Typumwandlung folgendes Listing (ich hoffe dass ich jetzt kein Copyright verletze, hab die Quelle ja angegeben):
union tWandler
{
struct
{
unsigned char hi;
unsigned char lo;
} byte;
unsigned short word;
} Wandler;
int main()
{
Wandler.word = 7656;
cout << int(Wandler.byte.hi) << endl;
cout << int(Wandler.byte.lo) << endl;
Als Erklärung steht über dem Listing, dass der union-Befehl zum tauschen der Bytereihenfolge zwischen verschiedenen Maschinen genutzt wird und unter dem Listing steht, dass als Ergebnis die Werte 232 und 29 ausgegeben werden, was soweit auch stimmt. Sonst gibt es nurnoch den Hinweis, dass der union-Befehl zu Unübersichtlichkeit führt.
Vielleicht gibt es jemand von euch, der mir eben erklären könnte, wie die Werte 232 und 29 zustande kommen? Es wird ja nur dem Element word ein Wert zugewiesen, aber nicht der Struktur oder einer ihrer Elemente und auch keine weiteren Zuweisungen/Berechnungen durchgeführt.
Falls ihr mir helfen könnte, möchte ich mich schonmal bedanken
MFG noxXx
P.S.: Bei google habe ich nur allgemeine Erklärungen zu dem Befehl gefunden, aber nichts was speziell auf dieses Listing deutet
ich lese gerade als Vorbereitung auf mein Info-Studium an der Uni Bonn das Buch "Einstieg in C++" von Arnold Willemer (falls das jemand kennt/besitzt). Ich finde das Buch soweit auch gut, nur mit dem Befehl 'union' hab ich gerade ein Problem.
Im Buch (S.152) steht als Beispiel zur Typumwandlung folgendes Listing (ich hoffe dass ich jetzt kein Copyright verletze, hab die Quelle ja angegeben):
union tWandler
{
struct
{
unsigned char hi;
unsigned char lo;
} byte;
unsigned short word;
} Wandler;
int main()
{
Wandler.word = 7656;
cout << int(Wandler.byte.hi) << endl;
cout << int(Wandler.byte.lo) << endl;
Als Erklärung steht über dem Listing, dass der union-Befehl zum tauschen der Bytereihenfolge zwischen verschiedenen Maschinen genutzt wird und unter dem Listing steht, dass als Ergebnis die Werte 232 und 29 ausgegeben werden, was soweit auch stimmt. Sonst gibt es nurnoch den Hinweis, dass der union-Befehl zu Unübersichtlichkeit führt.
Vielleicht gibt es jemand von euch, der mir eben erklären könnte, wie die Werte 232 und 29 zustande kommen? Es wird ja nur dem Element word ein Wert zugewiesen, aber nicht der Struktur oder einer ihrer Elemente und auch keine weiteren Zuweisungen/Berechnungen durchgeführt.
Falls ihr mir helfen könnte, möchte ich mich schonmal bedanken
MFG noxXx
P.S.: Bei google habe ich nur allgemeine Erklärungen zu dem Befehl gefunden, aber nichts was speziell auf dieses Listing deutet