C/C+中的假日蚀警告下划线+;代码

C/C+中的假日蚀警告下划线+;代码,c,eclipse,macos,C,Eclipse,Macos,我正在Mac上使用ACS STM32Workbench,它基于eclipse IDE。我得到以下错误的语法错误警告,我的代码被突出显示为黄色,这太令人恼火了。在“问题”选项卡中,没有关于警告的信息 我试着添加大括号,清理项目,刷新C/C++索引器中的所有文件,等等,但没有成功。我也不想禁用此功能,因为它确实有用,但误报是令人恼火的。 请帮忙 编辑 所有标题都正确地包含在其中,定义了这些结构/宏 #define GPIOA_BASE (APB1PERIPH_BASE + 0x0800U) #def

我正在Mac上使用ACS STM32Workbench,它基于eclipse IDE。我得到以下错误的语法错误警告,我的代码被突出显示为黄色,这太令人恼火了。在“问题”选项卡中,没有关于警告的信息

我试着添加大括号,清理项目,刷新C/C++索引器中的所有文件,等等,但没有成功。我也不想禁用此功能,因为它确实有用,但误报是令人恼火的。 请帮忙

编辑

所有标题都正确地包含在其中,定义了这些结构/宏

#define GPIOA_BASE (APB1PERIPH_BASE + 0x0800U)
#define GPIOB_BASE (APB1PERIPH_BASE + 0x0C00U)
#define GPIOC_BASE (APB1PERIPH_BASE + 0x1000U)
#define GPIOD_BASE (APB1PERIPH_BASE + 0x1400U)
#define GPIOA ((GPIO_Regdef_t*)GPIOA_BASE);
#define GPIOB ((GPIO_Regdef_t*)GPIOB_BASE);
#define GPIOC ((GPIO_Regdef_t*)GPIOC_BASE);
#define GPIOD ((GPIO_Regdef_t*)GPIOD_BASE);

typedef struct
{
    __IO uint32_t CRLR;
    __IO uint32_t CRHR;
    __IO uint32_t IDR;
    __IO uint32_t ODR;
    __IO uint32_t BSRR;
    __IO uint32_t BRR;
    __IO uint32_t LCKR;
}GPIO_Regdef_t;

这里有一个宏定义:

#define GPIOA ((GPIO_Regdef_t*)GPIOA_BASE);
    if(pGPIOX ==  ((GPIO_Regdef_t*)GPIOA_BASE);)
这里有一个用法:

    if(pGPIOX == GPIOA)
因此,我们可以用其定义替换
GPIOA

#define GPIOA ((GPIO_Regdef_t*)GPIOA_BASE);
    if(pGPIOX ==  ((GPIO_Regdef_t*)GPIOA_BASE);)
观察
GPIOA
定义中的分号

(我没有显示
GPIOA\u BASE
的替换,因为它在这里不相关。)