Gast
#2120316
Hi zusammen, vorab, ich bin mir dessen bewusst, dass die suche noch funktioniert, hab sie ja gerad Stunden lang gequält. Gefunden hab ich auch alles Mögliche, nur nichts was mich weiterbringt. Daher: Entschuldigung für noch eine "Union"-Thema. Zu meinem Problem: ich möchte auf 10 aneinander gereihte Bytes sowohl per Index zugreifen (also ein Array) als auch über eine Mischung aus uint16_t und uint8_t. Etwas verständlicher: die 10 Bytes uint16_t var1, uint16_t var2, uint8_t var3, uint8_t var4, uint8_t var5, uint8_t var6, uint8_t var7, uint8_t var8 sollen in obiger Reihenfolge über das Array uint8_t arr[10] gelesen und geschrieben werden können. Allgemein sollte dafür mMn eine union die richtige Wahl sein. Nur irgendwie stell ich mich wohl an.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
Jetzt steh ich irgendwie grad aufm Schlauch. Wie sprech ich die jetz an? beides.array[x] ist das x-te byte? beides.var2 entspricht ( (beides.array[2]<<8) | beides.array[3] ) , oder? Es scheint mir nur, das funktioniert nicht?! Wenn ich beides.var2 = 3 setze und daraufhin beides.array[2] lese hat dies irgendwie einen zufälligen Wert habe ich das Gefühl. Kann mir jemand bestätigen, dass der "Code" oben so fehlerfrei ist? Dann such ich nämlich den Fehler an anderer stelle weiter. Vielen Dank Michael