【C语言】使用宏定义实现对一个8bit数据的指定位的置0或者置1操作
代码如下
// 指定的某一位数置1
#define SetBit(x, y) (x |= (1<<y))
//指定的某一位数置0
#define ClearBit(x, y) (x &= ~(1<<y))
//指定的某一位数取反
#define ReverseBit(x,y) (x^=(1<<y))
//获取的某一位的值
#define GetBit(x, y) ((x>>y) & 1)
//指定的某一位数置为指定的0或1
#define WriteBit(data, position, flag) (flag ? SetBit(data, position) : ClearBit(data, position))