winnie 发表于 2009-4-26 11:41:23

C18

我要进行位操作,比如说我定义一个变量
unsigned char MY_STATUS;
#define ONE 1
#define TWO 2
............;
然后在程序中使用
MY_STATUS.ONE.....;
这是我原来的编译器中的用法,在C18中应该如何操作呀?

winnie 发表于 2009-4-26 11:41:40

结构与联合并用,C18只支持标准C的位变量
union{

unsigned char FLAGbyte;

struct{

unsigned ONE:1;

unsigned TWO:2;

unsigned :6;

};

}FLAGbits;

#define My_One FLAGbits.ONE

#define My_Two FLAGbits.TWO

#define My_FLAG FLAGbits.FLAGbyte
页: [1]
查看完整版本: C18