当前位置: 代码迷 >> 驱动开发 >> ADS下的结构体对齐有关问题
  详细解决方案

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

热度:65   发布时间:2016-04-28 11:14:09.0
ADS下的结构体对齐问题
问一个在ADS编译器下关于结构体对齐的问题.   如下结构体:
typedef   struct  
{
        U8 bLength;
        U8 bDescriptorType;
        #pragma   pack(paush,1
        struct  
          {
U8   address:4;
U8   reserved:3;
U8   direction:1;
        }   bEndpointAddress;
        #pragma   pack(pop)

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


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