函数声明为void * foo()

时间:2012-10-28 04:30:24

标签: c void void-pointers

我在我的O.S书中遇到过这段代码:

void *foo()
{
     // does something

     pthread_exit(NULL);
}

void *foo的含义是什么? 这是否意味着该函数返回指向void类型的指针?

2 个答案:

答案 0 :(得分:4)

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

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

答案 1 :(得分:2)

void *表示它返回指向某种类型的指针,未指定哪种类型。为了使用,指针被转换为适当的类型然后使用。事实void *foo只是间隔问题。

查看此explanation