#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。
参考资料: [H&S, Sec. 7.6.7 pp. 211-216]。
翻译朱群英、孙云, LaTeX2HTML 编译 朱群英 (2005-06-23)