Gast
#3476739
Hallo zusammen, ich benötige für ein Projekt sehr viele boolsche Flags (>100). Da ich nicht jeweils ein ganzes Byte verschwenden will organisier ich das ganze in einem Byte-Array. Der Zugriff erfolgt mittels Makros, um die dahinter liegende Datenstruktur zu verbergen.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
Lesen und Schreiben klappt auch, aber ich finde mein "Lese-Makro"
hässlich. Und außerdem sehr unperformant auf einem ATmega.
For allem die variablen Shifts dürften hässlich werden...
Geht das irgendwie schöner oder performanter?
Was mir spontan einfällt wäre den Ausdruck "(1 << (number % 8))" im
Makro durch einen LookUpTable-Zugriff zu ersetzen (uint8_8 lut[] =
{0x01, 0x02, ...})
Sollte zumindest einen Shift ersparen, kostet dafür 8 Byte.
Wie würdet ihr das lösen?
Viele Grüße,
Ben