在bitset.h中 ,有这样一个宏定义被广泛用到 testbit
#define testbit(ss, ibit) (((ss)[BIT2BYTE(ibit)] & BIT2MASK(ibit)) != 0)
#define BIT2BYTE(ibit) ((ibit) / BITSPERBYTE)
#define BIT2SHIFT(ibit) ((ibit) % BITSPERBYTE)
#define BIT2MASK(ibit) (1 << BIT2SHIFT(ibit))
初看很是费解,分析下来也很简单, 就是看当i把ss 写成二进制形式的时候,
它的第ibit比特位等于1
例如ss = "\000\040", 则 ibit 是13的时候, 宏定义返回true