原创 不同编译器处理位段的差异

2006-11-1 20:20 5048 8 8 分类: MCU/ 嵌入式

CCS里面认位段是从高位开始的,而Keil和凌阳单片机的编译器UNSP IDE以及NIOS II IDE,C++Builder里认位段是从低位开始的


同样做一个结构体,在Keil、UNSP IDE、NIOS II IDE、C++Builder里要这样:


#define Uint unsigned int
typedef struct
{
 Uint bit0 : 1;
 Uint bit1 : 1;
 Uint bit2 : 1;
 Uint bit3 : 1;
 Uint bit4 : 1;
 Uint bit5 : 1;
 Uint bit6  : 1;
 Uint bit7  : 1;
 Uint bit8  : 1;
 Uint bit9  : 1;
 Uint bit10  : 1;
 Uint bit11  : 1;
 Uint bit12  : 1;
 Uint bit13  : 1;
 Uint bit14  : 1;
 Uint bit15  : 1;
}Bit;


而在CCS里就应该这样:


#define Uint unsigned int
typedef struct
{
 Uint bit15 : 1;
 Uint bit14 : 1;
 Uint bit13 : 1;
 Uint bit12 : 1;
 Uint bit11 : 1;
 Uint bit10 : 1;
 Uint bit9  : 1;
 Uint bit8  : 1;
 Uint bit7  : 1;
 Uint bit6  : 1;
 Uint bit5  : 1;
 Uint bit4  : 1;
 Uint bit3  : 1;
 Uint bit2  : 1;
 Uint bit1  : 1;
 Uint bit0  : 1;
}Bit;


 

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
8
关闭 站长推荐上一条 /3 下一条