C 不存在运算符的错误消息
我正在尝试为定制的操纵杆编写固件代码。为此,我在atmega8微控制器上使用vusb。当我编译(使用avrgcc)时,它会抛出以下错误: usbdrv/usbdrv.c:93:54:错误:运算符“*”没有正确的操作数 但是,相应的行(及其sorroundings)中甚至没有任何“*”运算符:C 不存在运算符的错误消息,c,avr,avr-gcc,C,Avr,Avr Gcc,我正在尝试为定制的操纵杆编写固件代码。为此,我在atmega8微控制器上使用vusb。当我编译(使用avrgcc)时,它会抛出以下错误: usbdrv/usbdrv.c:93:54:错误:运算符“*”没有正确的操作数 但是,相应的行(及其sorroundings)中甚至没有任何“*”运算符: #if USB_CFG_DESCR_PROPS_STRING_PRODUCT == 0 && USB_CFG_DEVICE_NAME_LEN #undef USB_CFG_DESCR_PRO
#if USB_CFG_DESCR_PROPS_STRING_PRODUCT == 0 && USB_CFG_DEVICE_NAME_LEN
#undef USB_CFG_DESCR_PROPS_STRING_PRODUCT
#define USB_CFG_DESCR_PROPS_STRING_PRODUCT sizeof(usbDescriptorStringDevice)
PROGMEM const int usbDescriptorStringDevice[] = {
USB_STRING_DESCRIPTOR_HEADER(USB_CFG_DEVICE_NAME_LEN),
USB_CFG_DEVICE_NAME
};
#endif
//The following line is the one it complains about:
#if USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER == 0 && USB_CFG_SERIAL_NUMBER_LEN
#undef USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER
#define USB_CFG_DESCR_PROPS_STRING_SERIAL_NUMBER sizeof(usbDescriptorStringSerialNumber)
PROGMEM const int usbDescriptorStringSerialNumber[] = {
USB_STRING_DESCRIPTOR_HEADER(USB_CFG_SERIAL_NUMBER_LEN),
USB_CFG_SERIAL_NUMBER
};
#endif
我真的不知道该怎么办,希望有人能帮上忙。确实是宏出错了。“USB_CFG_SERIAL_NUMBER_LEN”扩展为“2*”,因为我的序列号定义为“1”、“2”、“3”、“4”、“5”、“6”,我想弄清楚数字是如何分组的(“2*3”),但我忘了键入3
谢谢你的帮助 通过预处理器运行代码并检查这些宏是如何扩展的?Paul R说,既然这是GCC,你能用-E运行它并查看它产生了什么吗?