免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 5378 | 回复: 17
打印 上一主题 下一主题

[C++] 问一下这个是什么语法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2013-10-05 23:19 |只看该作者 |倒序浏览
  1. typedef void (*func)();
  2.   func f = func(12);
复制代码
func(12)是构造函数?函数指针可以用int显式构造吗?
另外 func f = 12;
或者 func f = func(12.1f);
都是不行的。
这到底是什么啊

论坛徽章:
0
2 [报告]
发表于 2013-10-05 23:31 |只看该作者
我又想了一下,是不是类似于一个cast啊,把12作为函数地址,转换成了那个函数指针类型?
但是 func(12)这个不是构造函数的语法吗?
和 (func)12还是有区别的吧。。。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2013-10-06 04:38 |只看该作者
cast
回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页回帖后跳转到最后一页

论坛徽章:
0
4 [报告]
发表于 2013-10-06 10:28 |只看该作者
一样的
printf("%d, %d.\n", (int)108, int(10);
基本类型和指针类型应该都是经过类封装的。

论坛徽章:
0
5 [报告]
发表于 2013-10-06 12:03 |只看该作者
奇怪的在这里啊:
func f(12); //编译不通过
func f = func(12); // 编译通过
func f = 12; //编译不通过
func f = (func)12 //编译通过
对比一下:
int a(12);
int a = int(12);
int a = 12;
int a = (int)12;
谁能解释一下 int(12)应该就是初始化语法,与int a(12)应该是等价的啊,为什么在函数指针那只有一个能编译通过呢?

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
6 [报告]
发表于 2013-10-06 12:47 |只看该作者
傻鸟, 这不过是一个地址,指针存地址天经地义。

论坛徽章:
0
7 [报告]
发表于 2013-10-06 12:49 |只看该作者
这个编译通不过吧?

论坛徽章:
0
8 [报告]
发表于 2013-10-06 12:58 |只看该作者
回复 6# linux_c_py_php


    那你解释下我5楼的问题吧,func f(12) 与 func f = func(12) 从语法上看应该是等价的吧(忽略那个temporary), 为什么一个编译通过,另一个不行呢?
你说指针存地址是天经地义,但是12是个int啊,int不cast是不应该自动转换成指针的吧

论坛徽章:
0
9 [报告]
发表于 2013-10-06 13:03 |只看该作者
回复 7# qinggeng


    通过了啊,所以我才奇怪,用的vs2012

论坛徽章:
4
水瓶座
日期:2013-09-06 12:27:30摩羯座
日期:2013-09-28 14:07:46处女座
日期:2013-10-24 14:25:01酉鸡
日期:2014-04-07 11:54:15
10 [报告]
发表于 2013-10-06 13:15 |只看该作者
Frahm 发表于 2013-10-06 12:58
回复 6# linux_c_py_php


C++本来就不允许一个int -> pointer的转换,你当然要强制转换,这有什么问题?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP