我在O.S书中遇到了这个代码:
void *foo()
{
// does something
pthread_exit(NULL);
}
void *foo
的含义是什么?这是否意味着该函数返回指针到类型void
?
no,这意味着该函数返回 untyped type - void*
的指针。
这是一种"通用"指针类型。任何指向数据的指针都可以将其投放到void*
,然后返回到呼叫者。但是,为了 deReference 指针,您必须将其施加到非空线指针类型(int*
,long*
,char*
等)。
void *
表示它返回某种类型的指针,未指定哪个。为了使用,将指针铸成适当的类型,然后使用。void *foo
只是间距的事实。
查看此说明