我在我的O.S书中遇到过这段代码:
void *foo()
{
// does something
pthread_exit(NULL);
}
void *foo
的含义是什么?
这是否意味着该函数返回指向void
类型的指针?
答案 0 :(得分:4)
不,这意味着该函数返回无类型类型的指针 - void*
。
这是一种“通用”指针类型。任何指向数据的指针都可以强制转换为void*
,并返回给调用者。但是,为了取消引用指针,必须将其强制转换为非空指针类型(int*
,long*
,char*
,依此类推)
答案 1 :(得分:2)
void *
表示它返回指向某种类型的指针,未指定哪种类型。为了使用,指针被转换为适当的类型然后使用。事实void *foo
只是间隔问题。
查看此explanation