读书人

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

发布时间: 2012-02-03 22:02:47 作者: rapoo

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个字节

读书人网 >驱动开发

热点推荐