1

我需要知道当一个函数有一个void *参数时它意味着什么。例如:

function(void * param){}
4

5 回答 5

6

它是一个接收void*. 这可用于在 C 中传递任何类型的指针。

一个很好的例子是pthread_create函数和 pthread 启动例程。

但是请注意,如果未指定返回类型,则默认返回 an int,而在您的示例中没有。

于 2013-01-07T19:58:35.940 回答
2

Avoid *是指向任何数据的指针,即指向未知或未指定类型的数据。

于 2013-01-07T19:58:57.060 回答
2

paramis a void pointer 表示指向任何数据类型的指针。您可以调用泛型类型指针。

例如

func(void *param)
{
// body 
}

像这样打电话:

char* cptr;
int* iptr;
float* fptr;

func(cptr);
func(iptr);
func(fptr);
于 2013-01-07T19:59:08.680 回答
1

param具有 type void *,在 C 中用作“通用”指针类型;任何对象指针类型都可以转换为void *,反之亦然,无需显式强制转换(某些实现允许将函数指针类型转换为void *,但这不是通用的,语言标准也不能保证)。

请注意,void指针可能不会被取消引用,因此您不能x = *param在函数体中执行类似的操作。您必须将指针转换为不同的类型,例如int *ordouble *或任何其他类型以获得它所指向的内容。这取决于function应该如何处理它。

于 2013-01-07T20:35:23.657 回答
0

它表示 void* 类型的参数(对 void 的引用),即内存位置的大小。您可以使用它来引用任何内存位置,这实际上是任何东西。

于 2013-01-07T19:59:56.327 回答