gpt4 book ai didi

c - #ifndef (*销毁) (*匹配)

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

谁能解释一下#indef,void (*destroy)(void *data) 的定义

int (*match)(const void *key1,const void *key2)

在以下内容中:

#ifndef LIST_H
#define LIST_H
#include <stdio.h>

typedef struct _ListElmt{

void *data;
struct ListElmt *next;

} ListElmt;
typedef struct _List{

int size;
int (*match)(const void *key1, const void *key2);
void (*destroy)(void *data);

ListElmt *head;
ListElmt *tail;

} List;

void list_init(List *list, void (*destroy)(void *data));

void list_destroy(List *list);

int list_ins_next(List *list, ListElmt *element, const void *data);

int list_rem_next(List *list, ListElmt *element, void **data);

int list_size(const List *list);

ListElmt *list_head(const List *list);

ListElmt *list_tail(const List *list);

int list_is_head(const ListElmt *element);

int list_is_tail(const ListElmt *element);

void *list_data(const ListElmt *element);

ListElmt *list_next(const ListElmt *element);
#endif

最佳答案

#ifndef 行是 header guard 的开始.这可以防止标题在同一上下文中被包含两次。

void (*destroy)(void *data) 行定义了一个 function pointer .这是一个指向以 void* 作为参数并返回 void 的函数的指针,指针的名称是 destroy

变量match也是一个函数指针。

关于c - #ifndef (*销毁) (*匹配),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5010286/

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