c语言参数带void*
哪位大侠给个简单点的参数中带有void*p的例子,10左右行就够了,我想了解下c语言中参数带void*的用法。先谢谢了...
哪位大侠给个简单点的参数中带有void *p的例子,10左右行就够了,我想了解下c语言中参数带void*的用法。先谢谢了
展开
2个回答
展开全部
如果函数的参数不指定,(或者说可以是任意类型)的指针,则使用void *
如:void *func(void *var1) { }
void* 在ANSI与GNU中的表现也不一致。
ANSI中,void *p;
p++; p+=1; 都是不允许的,因为ANSI认为必须明确指针类型,才能进行运算。
而GNU中,则认为是合法的,默认规则是void*等同于char*
一般运用:
int *p; void *q;
*p = (int*)q;
(char *)q++;
(char*)q+=1;//这个就不一定正确了,要分编译器。
如:void *func(void *var1) { }
void* 在ANSI与GNU中的表现也不一致。
ANSI中,void *p;
p++; p+=1; 都是不允许的,因为ANSI认为必须明确指针类型,才能进行运算。
而GNU中,则认为是合法的,默认规则是void*等同于char*
一般运用:
int *p; void *q;
*p = (int*)q;
(char *)q++;
(char*)q+=1;//这个就不一定正确了,要分编译器。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询