Moin Leutz, kann man eigentlich eine struktur/union/mixed aufsetzen, so dass folgender Zugriff möglich wird? val = 0x12; val.foo = 0x01; val.bar = 0x02; Ich habe einiges mit structs und unions herumprobiert, komme aber zu keiner Lösung. VG, /th.
In etwa so?
1 | #include <stdio.h> |
2 | #include <stdint.h> |
3 | #include <stdlib.h> |
4 | |
5 | typedef union { |
6 | struct { |
7 | uint8_t bar:4; |
8 | uint8_t foo:4; |
9 | }fb; |
10 | uint16_t foobar; |
11 | }datas; |
12 | |
13 | int main ( int argc, char* argv[] ){ |
14 | datas myData; |
15 | myData.foobar=0x47; |
16 | printf("foobar = %x foo = %x bar = %x\n",myData.foobar, myData.fb.foo, myData.fb.bar); |
17 | |
18 | return 0; |
19 | }
|
Hallo wie wärs hiermit: union SHORT2BYTE{ short s; BYTE c[2]; }; union SHORT2BYTE sb; BYTE c1, c2; sb.s = 12; c1 = c[0]; c2 = c[1]; Gerhard
Random ... schrieb: > Moin Leutz, > > > kann man eigentlich eine struktur/union/mixed aufsetzen, so dass > folgender Zugriff möglich wird? Z.B. mit GNU GCC ja, sonst nein. GCC kann (oder konnte?) mal anonyme Alternativen.
> printf("foobar = %x foo = %x bar = %x\n",myData.foobar, myData.fb.foo,
myData.fb.bar);
Jep, nur mit dem Unterschied, dass ich das so schreiben kann:
printf("foobar = %x foo = %x bar = %x\n",myData.foobar,
myData.foobar.foo, myData.foobar.bar);
VG,
/th.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.