【发布时间】:2015-12-07 18:32:15
【问题描述】:
我试图了解此函数的 *adds 部分的作用:
【问题讨论】:
-
你应该熟悉函数签名、指针和函数指针
标签: c pointers struct structure
我试图了解此函数的 *adds 部分的作用:
【问题讨论】:
标签: c pointers struct structure
我认为你应该阅读更多关于pointers的信息
此* 中的*adds 与adds 无关,而是与返回类型相关联。
更像是这样..
struct list* adds(struct data *head, void fun)
现在很容易看出adds 是一个返回pointer to struct list 的函数。
这是声明pointer to a function的方式
void (*free_fun)(void *)
从名字free_fun开始阅读。 free_fun 是一个*,所以pointer 是一个函数,它接受参数(void *) 并返回void。
【讨论】:
struct list *adds(struct data *head, void fun) 是一个名为adds 的函数,它返回一个指向struct 类型为list 的指针。
void rel_list(struct data *dta, void (*free_fun)(void *)) 是一个函数,它接受 data 类型的 struct 和原型为 void something(void *in) 的函数指针
【讨论】:
adds 函数返回一个指向列表类型结构的指针。
rel_list 函数不返回任何内容。
free_fun 是一个指向不返回任何内容的函数的指针。
【讨论】: