免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: plp626
打印 上一主题 下一主题

[C] int (fun)(char *) 的问题 [复制链接]

论坛徽章:
0
21 [报告]
发表于 2012-09-22 18:30 |只看该作者
回复 20# sonicling


是吗,我这回想到一些情况下,你不到不用函数指针的指针这个类型的变量作为实参去传递给一个函数。。。

论坛徽章:
0
22 [报告]
发表于 2012-09-22 18:32 |只看该作者
回复 19# pmerofc


    回复又点错了,给你的回复在楼上。。。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
23 [报告]
发表于 2012-09-22 18:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
24 [报告]
发表于 2012-09-22 19:25 |只看该作者
回复 23# pmerofc


    你说显而易见,这是同意我的观点还是?

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
25 [报告]
发表于 2012-09-22 21:04 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
26 [报告]
发表于 2012-09-27 17:00 |只看该作者
本帖最后由 plp626 于 2012-09-27 17:01 编辑

回复 12# pmerofc

我那天还是想得有些复杂了,今天看帖子忽然想透了。。。
  1.     #include <stdio.h>
  2. int foo(char *s)
  3. {
  4.     puts(s);
  5.     return 0;
  6. }

  7. int   main(void)
  8. {
  9.     int (**pfun)(char *);

  10.     pfun = (int(**)(char *))foo;

  11.     printf("%d\n", ((int(*)(char *)) pfun)("hello, world!"));

  12.     return   0;
  13. }
复制代码

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
27 [报告]
发表于 2012-09-27 17:07 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
28 [报告]
发表于 2012-09-27 17:23 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
29 [报告]
发表于 2012-09-27 18:04 |只看该作者
薛兄是否也想得复杂了?

int (**pfun)(char *);

不过是用来保存函数指针地址的一个变量类型。。。

函数名,函数指针,函数指针的指针这三个的size在同一个系统中总是相等的。
强转不会有什么怪异行为(我觉得),搞来搞去也是跳转,也只是为了让编译器别报警告。。
--------------------
你说的函数指针和对象的指针 两者size可能都不同, 很感兴趣, 请教下。。。

论坛徽章:
0
30 [报告]
发表于 2012-09-27 18:05 |只看该作者
回复 28# pmerofc


   
薛兄是否也想得复杂了?

int (**pfun)(char *);

不过是用来保存函数指针地址的一个变量类型。。。

函数名,函数指针,函数指针的指针这三个的size在同一个系统中总是相等的。
强转不会有什么怪异行为(我觉得),搞来搞去也是跳转,也只是为了让编译器别报警告。。
--------------------
你说的函数指针和对象的指针 两者size可能都不同, 很感兴趣, 请教下。。。


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

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP