计算机应用于过程控制、参数检测和数据通信领域时,要求其应用程序具有对外部设备接口硬件进行控制和管理的功能。
经常使用的控制方式是向接口发送方式字或命令字,以及从接口读取状态字等。
这些命令字、方式字和状态字是以二进制(bit)为单位的字段组成的数据,它们称为位字段结构。
注意:
可以定义无名位字段,和0长度位字段(代表重新开始一个存储单元);
位字段长度不能超出存储单元;
不能定义数组;
位字段不是数组,没有地址,因此不能用&运算符;
经典举例:
typedef struct
{
byte EndPoint;} SimpleDescriptionFormat_t;
uint16 AppProfId;
uint16 AppDeviceId;
byte AppDevVer:4;
byte Reserved:4; // AF_V1_SUPPORT uses for AppFlags:4.
byte AppNumInClusters;
cId_t *pAppInClusterList;
byte AppNumOutClusters;
cId_t *pAppOutClusterList;
typedef struct
{
unsigned int sign:1;
unsigned int exponent:5;
unsigned int mantissa:10;
} afSemiPrecision_t;