我需要知道当一个函数有一个void *
参数时它意味着什么。例如:
function(void * param){}
它是一个接收void*
. 这可用于在 C 中传递任何类型的指针。
一个很好的例子是pthread_create
函数和 pthread 启动例程。
但是请注意,如果未指定返回类型,则默认返回 an int
,而在您的示例中没有。
Avoid *
是指向任何数据的指针,即指向未知或未指定类型的数据。
param
is a void pointer 表示指向任何数据类型的指针。您可以调用泛型类型指针。
例如
func(void *param)
{
// body
}
像这样打电话:
char* cptr;
int* iptr;
float* fptr;
func(cptr);
func(iptr);
func(fptr);
param
具有 type void *
,在 C 中用作“通用”指针类型;任何对象指针类型都可以转换为void *
,反之亦然,无需显式强制转换(某些实现允许将函数指针类型转换为void *
,但这不是通用的,语言标准也不能保证)。
请注意,void
指针可能不会被取消引用,因此您不能x = *param
在函数体中执行类似的操作。您必须将指针转换为不同的类型,例如int *
ordouble *
或任何其他类型以获得它所指向的内容。这取决于function
应该如何处理它。
它表示 void* 类型的参数(对 void 的引用),即内存位置的大小。您可以使用它来引用任何内存位置,这实际上是任何东西。