为什么叫万能指针(泛型指针)呢?
因为void型指针可以保存任何类型的指针,在libev中,watcher->data就是void *型,用来保存异步操作的数据。
----
看下面的例子:
我先把任意类型的指针赋值给void指针,使用时,先强制转化成原来的指针类型,然后解引,即可得到我们最初保存的数据。
#include <stdio.h>
int main() {
void *p = NULL;
int a = 10;
p = &a;
printf("a: %d\n", *(int *)p);
float b = 11.22;
p = &b;
printf("b: %f\n", *(float *)p);
char *c = "abc";
p = c;
printf("c: %s\n", p);
return 0;
}