void* 有什么用处?

cccloveyf 2005-05-12 10:40:19
我可不可以用一个void*变量。即指向整型又指向实型,然后强制类型转换?

比如:
void* data;
*(int*)data = 50;
printf( "%d", *(int*)data );
*(double*)data = 3,14;
printf( "%d", *(double*)data );

这样好象只是暂时的转换?有永久转换的方法吗?

还有需要的是指向函数的指针时,是否要用void*类型?也可以指向不同的函数吗?
谢谢各位高手,
...全文
263 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
huang77xl 2005-05-13
  • 打赏
  • 举报
回复
想问的是

struct link
{
void *data;
struct link *next;
};
我在函数里面用的是到data
比如 LINK * createList(const void *data)

那么我的main()里面怎么调用这个函数呀
BluntBlade 2005-05-13
  • 打赏
  • 举报
回复
void*的优点在于它什么都不是--也意味着它可以变身成为任意的、你所想要的那种指针。
lkrich7 2005-05-13
  • 打赏
  • 举报
回复
标记一下,感觉void *相当有用
lzwei3842 2005-05-13
  • 打赏
  • 举报
回复
UP
huang77xl 2005-05-12
  • 打赏
  • 举报
回复
我正在用
就是空类型 的指针

不能用于比较
比较的时候要注意

比如if (* (int *)(temp->data) == *(int *)data )
arrowcy 2005-05-12
  • 打赏
  • 举报
回复
这个东西就是用来表示通用型指针的
只等到真正用的时候作相应的转换
cppprogramlover 2005-05-12
  • 打赏
  • 举报
回复
void* data;
*(int*)data = 50;

你要永久转化只要这样,
int *datap =data;
以后直接用datap就可以了
fhvk 2005-05-12
  • 打赏
  • 举报
回复
表示不确定的数据类型时,用void比较好,实际应用时只要转换一下就好了
jerry 2005-05-12
  • 打赏
  • 举报
回复
比如 写文件,我不知道要写入什么结构的数据,我想所有的数据都可能 写,只要指定长度就可以了:

fwrite(FILE* file, void* pData, int len);
jerry 2005-05-12
  • 打赏
  • 举报
回复
用来表示不确定的东西,或者任意东西
zhousqy 2005-05-12
  • 打赏
  • 举报
回复
最好表这么干
llmsn 2005-05-12
  • 打赏
  • 举报
回复
void*类型的指针是不指向任何类型可以转化成指身其它类型的指针.

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧