我在我的操作系统书中遇到了这段代码:
void *foo()
{
// does something
pthread_exit(NULL);
}
是什么意思void *foo?这是否意味着函数返回指向某种类型的指针void?
我在我的操作系统书中遇到了这段代码:
void *foo()
{
// does something
pthread_exit(NULL);
}
是什么意思void *foo?这是否意味着函数返回指向某种类型的指针void?
不,这意味着该函数返回一个无类型类型的指针 - void*。
这是一种“通用”指针类型。任何指向数据的指针都可以转换为void*,并返回给调用者。但是,为了取消引用指针,您必须将其强制转换为非空指针类型(int*、long*、char*等)。
void *意味着它返回一个指向某种类型的指针,它没有指定哪个。为了使用,指针被强制转换为适当的类型,然后使用。事实上,这void *foo只是一个间距问题。
看看这个解释