C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了这两行代码中显式和隐式类型转换有什么区别?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
char a;
char b;
char c;

a = b + c;

a = (char)((int)b+(int)c);

在第一行中,它涉及从char到int的转换.在第二行,它是明确的.编译器生成的二进制文件有区别吗?

请从嵌入式系统的角度虑这个问题.

解决方法

我对该标准的阅读表明,这取决于实现和优化器.

第5.1.2.3节,第10部分:

char c1,c2;
/* ... */
c1 = c1 + c2;

我的理解是标准允许编译器决定是否可以使用8位加法,只要结果不能与添加整数和转换为字符区分开来.

回到我在嵌入式世界(九十年代中期)的日子里,我们用于8位平台的C编译器,用于68HC11的Whitesmith编译器,产生了一个用于添加两个字符的“普通”8位加法指令.找出你的fujitsu系统中发生的事情的唯一方法是编译到汇编并自己检查.

大佬总结

以上是大佬教程为你收集整理的这两行代码中显式和隐式类型转换有什么区别?全部内容,希望文章能够帮你解决这两行代码中显式和隐式类型转换有什么区别?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。