我尝试在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
?
谢谢你,抱歉英语不好。
答案 0 :(得分:2)
前瞻性声明。
在开头添加:typedef struct s_client t_client;
现在编译器会在t_client
中遇到s_match_fptr
类型。
注意,类型必须仅在s_match_fptr
定义中引用(即使用指针)。这样,编译器在解析代码时不需要知道该类型的实际内容。