今天把KEIL例程的USB代码移植到IAR碰到这么一行语句
(BYTE *)pD += ((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength;//这里注意IAR不像KEIL一样,IAR不支持强制指针转换左值运算。
因此把次句改为pD=(USB_COMMON_DESCRIPTOR*)((BYTE*)pD+(((USB_CONFIGURATION_DESCRIPTOR *)pD)->wTotalLength));
否则的话IAR编译通不过! Error[Pe137]: expression must be a modifiable lvalue
USB_COMMON_DESCRIPTOR结构体原形为如下:
/* USB Common Descriptor */
typedef struct _USB_COMMON_DESCRIPTOR {
BYTE bLength;
BYTE bDescriptorType;
} USB_COMMON_DESCRIPTOR;
文章评论(0条评论)
登录后参与讨论