本帖最后由 xyr19 于 2011-10-11 10:49 编辑
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;
这是我在AVR中用到的程序定义,以方便单独对某一位进行判断和赋值,
但移植到89LPC934上,使用KEIL C51时,编译没有提示错误,但实际运行错误,
原因是编译器识别不了
if(QDP_State.Bit.Pump!=0) 这样的语句,
如果改成if((QDP_State.All&0X04)!=0) 程序运行就正确,请问这是怎么回事,
在C51中如何进行类似的定义?
谢谢 |