Speichergröße bool array <-> char array
-
DerHorst schrieb:
Für diese Untersuchungen brauche ich halt verschiedene Arrays (gleichzeitig), um pixelbezogene Ereignisse abzufragen.
Jedenfalls ist mir noch nichts gescheiteres (als ein weiteres Array in Bilddimensionen) eingefallen, um ein pixelbezogenes Ereignis zu speichern.DerHorst
Vielleicht könntest du ein Array einer Bitfield-Struct verwenden um Platz zu sparen (statt mehrere bool Arrays):
struct PixelProperties { unsigned char isX : 1; unsigned char isY : 1; unsigned char fooType : 2; unsigned char barType : 2; }; std::vector<PixelProperties> pixelProps;Würden den Lookup vermutlich unglaublich beschleunigen.
-
was ich nicht verstehe/kenne ist die Struktur deiner Struktue. Genauer gefragt,
was macht:unsigned char isX : 1; //is = 1bit groß? unsigned char fooType : 2; //fooType = 2bit groß?Idee:
Du "baust" eine Struktur mit 4 u-char-Elementen auf, von denen 2 1-Bit und 2 2-Bit groß sind?
-
Das nennt sich "bit fields".
http://msdn.microsoft.com/en-us/library/ewwyfdbe(VS.71).aspx
Die Zahl hinter dem : gibt an wieviel Bits man braucht, wie du schon richtig vermutet hast.
Du "baust" eine Struktur mit 4 u-char-Elementen auf, von denen 2 1-Bit und 2 2-Bit groß sind?
Ja.
Die von mir gezeigte Struktur sollte insgesamt aber nur 1 Byte gross sein, da die 4 u-char Elemente zu einem einzigen u-char zusammengefasst werden.
-
oha ...
Danke für den Tip - und den Link.
Interessante Sache das
DerHorst