我尝试在 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_match_ptr
结构中声明一个函数指针,该函数指针接受一个 t_client
结构的参数。
此外,我的结构 t_client
有一个 t_match_ptr
数组。
为了简化,A需要在B之后声明,B需要在A之后声明。
那么,有没有办法在声明t_match_ptr
之前“预先声明”t_client
?
谢谢你,抱歉英语不好。
前向声明。在开头添加:typedef struct s_client t_client;
现在,编译器将在 s_match_fptr
中遇到 t_client
类型。请注意,该类型只能在 s_match_fptr
定义中通过引用使用(即使用指针)。这样编译器在解析代码时就不需要知道类型的实际内容。
我是一名优秀的程序员,十分优秀!