keil中关于 error: #134: expected a field name 的讨论
出现error: #134: expected a field name这个错误,如果你确定定义了结构体,那一定是名字冲突的问题。
博主这些天尝试将UCGUI(一种嵌入式图形软件,用它可以制作操作界面,图像等等,用于在显示设备上显示。)移植到STM32上,在移植过程中始终有红酒配什么菜 error: #134: expected a field name 的报错。
越南美女图片具体报错为:在匹配 LCD_L0_SetPixelIndex(x0, y, LCD_COLORINDEX);函数时一直出现这一问题。经分析问题出在LCD_COLORINDEX这一参数上。 LCD_COLORINDEX是一个宏定义而来的参数,具体如下:
以下函数为UCGUI源码中的LCDDriver中的匹配函数:
#if (LCD_BITSPERPIXEL <= 8) && (GUI_NUM_LAYERS < 2)
#define LCD_BKCOLORINDEX GUI_Context.LCD.aColorIndex8[0]鱼怎样做最好吃
#define LCD_COLORINDEX GUI_Context.LCD.aColorIndex8[1]
#define LCD_ACOLORINDEX GUI_Context.LCD.aColorIndex8
#el
#define LCD_BKCOLORINDEX GUI_Context.LCD.aColorIndex16[0]
#define LCD_COLORINDEX GUI_Context.LCD.aColorIndex16[1]
#define LCD_ACOLORINDEX GUI_Context.LCD.aColorIndex16
#endif
其中LCD为定义的共同体
typedef union {
灵活反义词 U8 aColorIndex8[2];
男斜挎包
U16 aColorIndex16[2];
} LCD_COLORINDEX_UNION;
LCD_COLORINDEX_UNION LCD;
经过三天的迷茫修改,最终出错原因在于,在工程提供的电容屏驱动去痘偏方lcdur.h文件中已经有过对LCD的宏定义。如下:
#define LCD ((LCD_TypeDef *) LCD_BASE)
在共同体定义中包含LCD
然而在宏定义中:#define LCD ((LCD_TypeDef *) LCD_BASE)也包含LCD
所以出错了!
希望大家可以借鉴!
12星座配对表格综上在定义结构体、共同体时要注意参数名的设置,要特别注意出现重名的现象。