//实现对一个8bit数据(unsigned char类型)的指定位的置0或者置1操作,并保持其他位不变
<span style="font-size:18px;">#include<stdio.h>
void bit_set(unsigned char *p_data,unsigned char position,int flag)
{
unsigned char bit=1<<(position-1);
if(flag)//置1操作
{
*p_data=*p_data | bit;
}
else//置0操作
{
*p_data=*p_data & ~(bit);
}
}
int main()
{
unsigned char val=13;
bit_set(&val,2,1);
printf("%d\n",val);
return 0;
}</span>