函数类型的指针能否转成void *

R9R9R9 2005-06-05 12:05:43
书上写明..不可转换.为何我这个可以通过编译呢?是编译器的问题吗?我用的是VC6.0+XP

typedef int(*PFV)();

PFV test[10];

void reset(void *)
{
cout<<"void *"<<endl;
}
void main()
{
reset(test[0]);
}
...全文
152 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qhfu 2005-06-05
  • 打赏
  • 举报
回复
用 vs 2003 对标准的支持还可以
fwinfwin 2005-06-05
  • 打赏
  • 举报
回复
可以转的,
只是,函数指针本来带有参数调用信息,
转换之后,变成了函数入口地址,如果是无参数的函数,这种转换不带来什么问题
mostideal 2005-06-05
  • 打赏
  • 举报
回复
我没用过vc6.0。。
R9R9R9 2005-06-05
  • 打赏
  • 举报
回复
那现在到底用什么编译器好呢VC 6.0好多会出错很多的跟书中讲的不匹配啊
qhfu 2005-06-05
  • 打赏
  • 举报
回复
不是 编译器问题,
WingForce 2005-06-05
  • 打赏
  • 举报
回复
typedef int(*PFV)();

PFV test[10];

void reset(void *)
{
cout<<"void *"<<endl;
}
void main()
{
reset((void*)test[0]);
}
即可

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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