怎样实现比特数组或集合?
使用int 或char 数组, 再加上访问所需比特的几个宏。这里有一些简单的宏定义, 用于char 数组:
#include <limits.h> /* for CHAR_BIT */
#define BITMASK(b) (1 << ((b) % CHAR_BIT))
#define BITSLOT(b) ((b) / CHAR_BIT)
#define BITSET(a, b) ((a)[BITSLOT(b)] |= BITMASK(b))
#define BITTEST(a, b) ((a)[BITSLOT(b)] & BITMASK(b))
如果你没有<limits.h>, 可以定义CHAR BIT 为8。