pole bitového pole v C
Jan Waclawek
konfera na efton.sk
Sobota Leden 12 15:45:12 CET 2013
> je to vlastně pole char[3], chtěl bych napsat něco univerzálního, kde bych
> zadal ukazatel na počátek pole, jaký bit nastavit např.14.
>
> Nějak mě nenapadá žádný elegantní způsob. Ale zase, někde jsem to někde
> viděl v asm pro PIC. Míra
#include <stdint.h>
uint8_t bits[3]
void SetBit(uint8_t * bitfield, uint8_t idx, _Bool value) {
uint8_t mask;
mask = 1 << (idx % 8);
if (value) {
bitfield[idx / 8] |= mask;
} else {
bitfield[idx / 8] &= (~mask) & 0xFF;
}
}
_Bool GetBit(uint8_t * bitfield, uint8_t idx) {
return (_Bool)(bitfield[idx / 8] & (1 << (idx % 8))
}
wek
wek
Další informace o konferenci Hw-list