在C中预定义结构

时间:2015-03-11 10:39:17

标签: c function pointers struct

我尝试在C中执行此操作:

typedef struct s_match_fptr
{
  char *str;
  int  (*funcptr)(t_client *client, char **command);
} t_match_fptr;

typedef struct s_client
{
  int socket_fd;
  int port;
  char *server_ip;
  struct sockaddr_in s_in;
  t_match_fptr  *db;
} t_client;

重点是我尝试声明一个函数指针,该指针在我的t_client结构中包含参数t_match_ptr结构。

此外,我的结构t_client的数组为t_match_ptr

为简化起见,A需要在A和

之后声明B和B之后声明

那么,有没有办法在声明t_client之前“预先声明”t_match_ptr

谢谢你,抱歉英语不好。

1 个答案:

答案 0 :(得分:2)

前瞻性声明。 在开头添加:typedef struct s_client t_client;

现在编译器会在t_client中遇到s_match_fptr类型。 注意,类型必须仅在s_match_fptr定义中引用(即使用指针)。这样,编译器在解析代码时不需要知道该类型的实际内容。