#define BIT3 (0x1 << 3)
static int a;
void set_bit3(void)
{
a |= BIT3;
}
void clear_bit3(void)
{
a &= ~BIT3;
}
用 #defines 和 bit masks 操作。这是一个有极高可移植性的方法,是应该被用到的方法。
0x表示此数为16进制表示方法
0x1表示为2进制就是0001
<<是移位操作 表示左移,>>表示右移
0x1<<3表示将0x1向左移3位
即0x1<<3 = 0001<<3 = 1000 = 0x8
a |= BIT3 相当 a = a | BIT3 相当 a = a | 0x0008;
a &= ~BIT3 相当 a = a & ~BIT3 相当 a = a & 0xFFF7;