根据你提供的代码,该问题可能是因为在结构体中定义了函数指针,并且使用了尾随返回类型(trailing return type)。但是,尾随返回类型只能用于函数声明和定义中,不能用于非函数声明符后面。
解决方法:
- 如果确实需要在结构体中定义函数指针,则应将其定义为普通成员变量,而不是使用尾随返回类型。例如:
struct ether_hdr {
struct ether_addr d_addr; /**< Destination address. */
struct ether_addr s_addr; /**< Source address. */
uint16_t ether_type; /**< Frame type. */
int (*func_ptr)(int, int); // 定义一个函数指针作为成员变量
};
- 如果不需要在结构体中定义函数指针,则应该检查是否有误操作或者语法错误导致该问题出现。例如,可能是误将一个普通变量后面加上了尾随返回类型。
总之,在使用 VS2019 编译器时遇到类似问题时,建议仔细检查代码逻辑和语法规范。