typedef __packed struct CONFIGURATION_DESCRIPTOR嗯。size是9 (bytes)。奇數。
{
char bLength;
char bDescriptorType;
unsigned short wTotalLength;
char bNumInterfaces;
char bConfigurationValue;
char iConfiguration;
char bmAttributes;
char MaxPower;
} CONFIGURATION_DESCRIPTOR;
在code中,sizeof(this structure) 的話,會顯示 10 - 偶數。
這是因為ARM Compiler (ADS) 自動加上padding 的關係,可以在compiler 選項中enable "warning padding",就可以看到這個structure 出現warning。
如果要compiler 不加上padding 的話,就要將上"__packed " 這個修飾字 (ref DUI0067D_ADS1_2_CompLib.pdf )。
這樣,sizeof( this structure ) 就會是9了。
2 則留言:
是 10 而不是 12 嗎?
Thumb Mode or 32bit Mode
我沒有用過這東西 但是一般 Compiler Data Padding 會用 WORD 的倍數吧
真的是10呢,而且也沒有開啟thumb mode。
我還用ICE 看 (雖然好像多此一舉)。
張貼留言