LZ概念不清,Keil C51的变量赋值,对隐性变量(指未定义变量类型)全部按 int 赋值。
因此,下列联合定义中,上半部分 bit位定义在 int类型中,下半部分LZ 定义了 char类型,你让 Keil C51如何听你话?
union {
struct {
unsigned Wind: 1; //
unsigned JCQ: 1;
unsigned Pump: 1;
unsigned Intel: 1;
unsigned Drain: 1;
unsigned CCW_Flag: 1;////////////////////////////////
unsigned Swing: 1;
unsigned : 1;
}Bit;
unsigned char All;
}QDP_State;
14楼 将下半部分 改为定义成 int类型,和上半部分 bit位定义在 int类型中相匹配,所以编译后运行正确。
15楼 将上半部分 改为定义成 char类型,和下半部分 char类型变量相匹配,所以编译后运行正确。
综上,还是LZ概念不清~~~ |