好库网首页 | 我的好库
好库网 好库网社区
IT社区 » C/C++ » C语言论坛 » 为什么我把函数指针赋向void * 类型的时候,编译通不过
回复 发帖

查看:1546    回复:1 为什么我把函数指针赋向void * 类型的时候,编译通不过
访问okcool的空间
发表于 2012/6/10 14:34:52
1楼

通用指针类型是什么?当我把函数指针赋向void * 类型的时候,编译通不过。

访问vchelp的空间
发表于 2012/6/10 14:35:12
2楼

没有什么“通用指针类型”。void*指针只能保存对象(也就是数据)指针。将函数指针转换为void * 指针是不可移植的。(在某些机器上,函数指针可能很大—–比任何数据指针都大。)

但是,可以确保的是,所有的函数指针类型都可以相互转换,只要在调用之前转回了正确的类型即可。因此,可以使用任何函数类型(通常是int (*)()或void  (*)(),即未指明参数、返回int或void的函数)作为通用函数指针。如果你需要一个既能容纳对象指针又能容纳函数指针的地方,可移植的解决方案是使用包含void * 指针和通用函数指针(任何类型都可以)的联合。

您需要登录后才可以回帖 登录 | 注册
回复 发帖