免费注册 查看新帖 |

Chinaunix

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

[C] 强制类型转换的实质 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-07 21:52 |只看该作者 |倒序浏览
哪位高手帮忙解释一下强制类型转换的实质是什么?曾听老师说过一句但是没能理解……

论坛徽章:
324
射手座
日期:2013-08-23 12:04:38射手座
日期:2013-08-23 16:18:12未羊
日期:2013-08-30 14:33:15水瓶座
日期:2013-09-02 16:44:31摩羯座
日期:2013-09-25 09:33:52双子座
日期:2013-09-26 12:21:10金牛座
日期:2013-10-14 09:08:49申猴
日期:2013-10-16 13:09:43子鼠
日期:2013-10-17 23:23:19射手座
日期:2013-10-18 13:00:27金牛座
日期:2013-10-18 15:47:57午马
日期:2013-10-18 21:43:38
2 [报告]
发表于 2010-09-07 21:56 |只看该作者
实质是跟没有转换一样,没有额外的代码生成

论坛徽章:
0
3 [报告]
发表于 2010-09-07 21:57 |只看该作者
bd

论坛徽章:
0
4 [报告]
发表于 2010-09-08 00:56 |只看该作者
回复 1# atomthan


    实际上编译器什么也没做,只是告诉你这里可以这样做。

论坛徽章:
0
5 [报告]
发表于 2010-09-08 01:15 |只看该作者
In the C programming language, explicit type conversion (cast) can be thought of as a special reinterpretation of the raw data, which is usually unchanged throughout the step. It is changed, however, when the new type cannot hold as much data as the original one, for example, when a long int is converted into a short int.

在 C 程序设计语言中,强制类型转换可以认为是对原始数据的一种特殊的重新解释,这里的数据在转换的整个过程中一般是不做任何改动的,除非新类型能容纳的信息量比原类型更少,比如从长整型 long int 转换到短整型 short int 的时候。

Further reading: http://en.wikipedia.org/wiki/Type_conversion

论坛徽章:
0
6 [报告]
发表于 2010-09-08 09:25 |只看该作者
5l专业。。

论坛徽章:
0
7 [报告]
发表于 2010-09-08 20:52 |只看该作者
回复 1# atomthan


    变量代表一块内存,指针的类型,代表这块内存的类型(以及可以在其上的操作),强制类型转换,相当于以另一种方式看它。

    例如:int x; char *p = (char *)x; x本来代表4个自己的内存,现在p是指向4个字节的指针。x是整数,p是指针。本质都是4字节的内存。

论坛徽章:
0
8 [报告]
发表于 2010-09-08 22:26 |只看该作者
谢谢各位!

刚知道Wikipedia确实有用。

论坛徽章:
1
射手座
日期:2013-08-21 13:11:46
9 [报告]
发表于 2010-09-09 00:02 |只看该作者
实际就是让编译器别叫了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP