我相信这个问题以前有人问过。但我想知道这段代码中的typedef
是什么意思:
typedef long (*HASH_CONS_HASH)(void *);
typedef bool (*HASH_CONS_EQUAL(void *, void *));
到目前为止,我明白:
HASH_CONS_HASH
是一个接受void*
并返回long
的函数HASH_CONS_EQUAL
是一个函数,它接受两个类型void*
的参数并返回bool
但是typedef
这里的意思是什么?有必要吗?
它声明函数指针类型。
现在,您可以定义HASH_CONS_HASH func1;
其中 func1 是指向返回 long 且不采用任何参数的函数的指针
或HASH_CONS_EQUAL func2;
其中func2
是指向返回bool
并将两个 void 指针作为参数的函数的指针。