在 C 中出现'*'令牌错误之前的预期')'



以下是我的.h文件

  1 typedef int32_t status_t;
  2 typedef u_int16_t pic_id_t;
  3 typedef const char* (*pic_flavor_t) (pic_t *);
  4 typedef status_t (*pic_periodic_t) (pic_t *);
  5 typedef status_t (*pic_get_port_info_t) (pic_t *pic, u_int16_t link,void  *info,boolean *need_update);
  6 
  7 struct pic_
  8 {
  9     u_int16_t   nic_slot;
  10     u_int16_t   pic_slot;
  11     u_int32_t   pic_flags;
  12     pic_id_t    pic_id;
  13     u_int16_t   pic_asic_type;
  14     u_int16_t   pic_firstport;
  15     pic_periodic_t  pic_periodic;
  16     pic_flavor_t    pic_flavor;
  17     pic_get_port_info_t pic_get_port_info;
  18     void *pic_context;
  19 }pic_t;
  20 

这些都是我犯的错误。

../../../../../src/pfe/common/drivers/rpio/rpio_tunnel_pvt1.h:3: error: expected ')'   before '*' token
../../../../../src/pfe/common/drivers/rpio/rpio_tunnel_pvt1.h:4: error: expected ')' before '*' token
../../../../../src/pfe/common/drivers/rpio/rpio_tunnel_pvt1.h:5: error: expected ')' before '*' token
../../../../../src/pfe/common/drivers/rpio/rpio_tunnel_pvt1.h:15: error: expected specifier-qualifier-list before 'pic_periodic_t'

我正在尝试为我的.c文件创建一个新的.h文件。在这里,我将在.c文件中包含一些所需结构的定义我无法解决这些错误。

以下内容似乎适用于

typedef struct pic_ pic_t;
typedef int32_t status_t;
typedef u_int16_t pic_id_t;
typedef const char* (*pic_flavor_t) (pic_t *);
typedef status_t (*pic_periodic_t) (pic_t *);
typedef status_t (*pic_get_port_info_t) (pic_t *pic, u_int16_t link,void  *info, boolean *need_update);
struct pic_
{
    u_int16_t   nic_slot;
    u_int16_t   pic_slot;
    u_int32_t   pic_flags;
    pic_id_t    pic_id;
    u_int16_t   pic_asic_type;
    u_int16_t   pic_firstport;
    pic_periodic_t  pic_periodic;
    pic_flavor_t    pic_flavor;
    pic_get_port_info_t pic_get_port_info;
    void *pic_context;
};

您在中使用pic_t

typedef const char* (*pic_flavor_t) (pic_t *);

但是您已经定义了pic_t类型。

struct pic_
{
    ...
}pic_t;

所以pic_t在这个时刻不可用/编译器不知道(在#3行)。

若要删除错误,请在使用pic_t类型之前声明此结构。

啊!您还需要typedefstructpic_t—不要将其作为结构对象。

更好的解释是使用user3386109的答案中的代码。

相关内容

  • 没有找到相关文章

最新更新