C语言基础操作-位段
一个简单的操作,随手笔记。单片机中以前要修改bit的时候经常会用到位屏蔽,但是当数据比较长的时候可以试试位段。
#include "string.h"
typedef struct
{
uint8_t ad0 :1;
uint8_t ad1 :1;
uint8_t ad2 :1;
uint8_t no_change :5;
}my;
void cout()
{
my data;
uint8_t d = 0xff;
memcpy(&data,&d,sizeof(my));
data.ad0 = 1;
data.ad1 = 0;
data.ad2 = 0;
rt_kprintf(" data = %2x\n",data);
}
实验现象: