首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 驱动开发 >

ADS下的结构体对齐有关问题

2012-02-03 
ADS下的结构体对齐问题问一个在ADS编译器下关于结构体对齐的问题.如下结构体:typedefstruct{U8bLengthU8b

ADS下的结构体对齐问题
问一个在ADS编译器下关于结构体对齐的问题.   如下结构体:
typedef   struct  
{
        U8bLength;
        U8bDescriptorType;
        #pragma   pack(paush,1
        struct  
          {
U8   address:4;
U8   reserved:3;
U8   direction:1;
        }   bEndpointAddress;
        #pragma   pack(pop)

        U8bmAttributes;
        U16wMaxPacketSize;
        U8bInterval;
}   USB_endpoint_desc_t;
我用了packed关键词后.sizeof(USB_endpoint_desc_t)还是8个字节.   应该怎么设置该结构体才能正确为7个byte?


[解决办法]
没遇到过这样的问题,关注中!
[解决办法]
你只能对齐结构体内,整个结构还是要按照双字节对齐的,所以必须是偶数个字节,小端模式的时候ADS应该是最后一个字节占位。
[解决办法]
结构体是按字对齐的,sizeof(USB_endpoint_desc_t)不可能是7个字节

热点排行