0

我在我的操作系统书中遇到了这段代码:

void *foo()
{
     // does something

     pthread_exit(NULL);
}

是什么意思void *foo?这是否意味着函数返回指向某种类型的指针void

4

2 回答 2

4

不,这意味着该函数返回一个无类型类型的指针 - void*

这是一种“通用”指针类型。任何指向数据的指针都可以转换为void*,并返回给调用者。但是,为了取消引用指针,您必须将其强制转换为非空指针类型(int*long*char*等)。

于 2012-10-28T04:32:58.793 回答
2

void *意味着它返回一个指向某种类型的指针,它没有指定哪个。为了使用,指针被强制转换为适当的类型,然后使用。事实上,这void *foo只是一个间距问题。

看看这个解释

于 2012-10-28T04:32:57.477 回答