gpt4 book ai didi

c - 在 C 中预定义结构

转载 作者:太空宇宙 更新时间:2023-11-04 02:44:14 25 4
gpt4 key购买 nike

我尝试在 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 定义中通过引用使用(即使用指针)。这样编译器在解析代码时就不需要知道类型的实际内容。

关于c - 在 C 中预定义结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28984339/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com