读书人

void*有什么用?举个事例

发布时间: 2012-12-30 10:43:15 作者: rapoo

void*有什么用?举个例子

#include <stdio.h>
void* fun(void* t1,void* t2)
{
return *t1 + *t2;
}
int main(void)
{
float m,m1,m2;
int n,n1,n2;
m1 = 1.1;
m2 = 2.2;
n1 = 4;
n2 = 5;
m = (float*)fun(&m1,&m2);
n = (int*)fun(&n1,&n2);
printf("%f\n%d\n",m,n);
getch();
return 0;
}

上面这段代码想用void*实现不同调用返回不同的类型的结果,但是出错了。发现错误是void*不能进行取值运算,但我再想不出void*还有什么用途了?谁能举个简单的void*的实用例子吗?对void*不是很懂,求高手解答!谢谢!
[解决办法]
void *可以指向类型可能会变化的数据结构,比如你封装一个结构,它的一个成员为void *,void *指向的的数据类型会变化,具体的类型在你封装的这个结构中有类型指示,这样,你就可以类型指示,把void *转换为合适的指针后,来操作它指向的数据了。

读书人网 >C语言

热点推荐