cJSON Hook = { (void *( *))(size_t))h_malloc, h_free };
typedef struct cJSON_Hooks
{
void *(*malloc_fn)(size_t sz);
void (*free_fn)(void *ptr);
} cJSON;
定义一个结构体,结构体内,函数指针malloc_fn .参数为sz, 返回一个指针,在具体实现中,h_malloc 函数前的 (void ()(size_t)) 代表什么意思?
h_malloc函数 是 一个 函数参数为size_t,函数返回一个void *指针 的函数,所以 (void * ( *)(size_t)) 是不是代表了 函数的类型
就是把h_malloc函数指针强制转换成(void ()(size_t))函数类型的指针
这是两个函数指针,定义了函数的参数及返回值类型,只有符合参数和返回值规则的函数,才能把函数名赋值给这个指针