És a megoldás úgy lenne a legszebb és legtakarékosabb memóriában, ha a boolen változót átalakítanád bitmûvelettel integer változóba, hogy miért?
Integer változó - 32 igaz/hamis érték tárolására képes, 32 bit azaz 4 bájtot foglal le
Boolean változó - 1 igaz / hamis érték tárolására képes, 8 bit, azaz 1 bájtot foglal le
Ha 4 boolean változó kirak egy integer változót ami 32 értéket képes kezelni, míg a boolen csak négyet beláthatjuk, hogy elég memóriapazarló dolog.
Bitmûvelettel viszont megoldhatjuk, hogy ne foglaljon el ennyit és sokkal gyorsabb és spórosabb megoldás. (lásd 32 boolen esetén 31 kilobyte, 1 integer amiben ugyan úgy 32 érték fér csak 3,9 kilobyte)
Az adatok kiolvasására:
stock GetData(integer, bit)
{
return integer >> bit & 1;
}
Az adat írására:
stock SetData(&integer, bit, value)
{
integer |= value << bit;
return 1;
}
A függvényeket Anthony írta meg, a bitekrõl itt lehet még olvasni :
http://sampforum.hu/index.php?topic=29621.0