例如文中的代码
#define BITWORD 8 #define SHIFT 3 #define N 32 #define Mask 0x7 void set_bit(uint8_t* array, uint8_t num); void clear_bit(uint8_t* array, uint8_t num); bool test_bit(uint8_t* array, uint8_t num); uint8_t test_array[N / BITWORD + 1] = { 0 }; int main() { set_bit(test_array, 22); printf("%d\n", test_bit(test_array, 22)); } void set_bit(uint8_t* array, uint8_t num) { array[num >> SHIFT] |= (1 << (num & Mask)); } void clear_bit(uint8_t* array, uint8_t num) { array[num >> SHIFT] &= ~(1 << (num & Mask)); } bool test_bit(uint8_t* array, uint8_t num) { return array[num >> SHIFT] & (1 << (num & Mask)); }