keil也支援匿名結構體、聯合體
阿新 • • 發佈:2019-02-04
#pragma anon_unions
typedef union {
unsigned int num;
struct {
unsigned int nLow :8;
unsigned int nHigh :8;
};
}kkTypedef;
void jjj(void)
{
kkTypedef kknum;
kknum.num=99;
kknum.nLow=10;
}
//keil中預設是不支援匿名結構體的,需要編譯指令#pragma anon_unions指名。
但是不支援這樣的匿名結構體
#pragma anon_unions
union {
unsigned int num;
struct {
unsigned int nLow :8;
unsigned int nHigh :8;
};
};
void jjj(void)
{
num=99;
nLow=10;
}
error: #20: identifier "num" is undefined
error: #20: identifier "nLow" is undefined
但在IAR裡是可以的,有點不一樣。
補充:好像在GCC編譯器中也是可以的。
補充2:在CCS V5.1中使用MSP430中不能使用以上兩個結構體,不知道在CCS V5.1中MSP430的編譯器是什麼,反正是不支援匿名結構體。