Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 不存在运算符的错误消息_C_Avr_Avr Gcc - Fatal编程技术网

C 不存在运算符的错误消息

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

我正在尝试为定制的操纵杆编写固件代码。为此,我在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_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运行它并查看它产生了什么吗?