热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

C++是否允许将任何整数文字隐式转换为shortint?

如何解决《C++是否允许将任何整数文字隐式转换为shortint?》经验,为你挑选了1个好方法。

该标准允许任意两种整数类型之间的隐式转换,无论它们的值如何.

编译器警告与合法代码无关; 当您的代码可能没有按照您的意愿执行时,编译器会发出警告.

在您的特定情况下,n1将为8并且n2将具有实现定义的值.这两个作业都是合法的C++,但后者可能不是你想要的.


相关标准:

可以将整数类型的prvalue转换为另一个整数类型的prvalue.可以将未范围的枚举类型的prvalue转换为整数类型的prvalue.
如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模2 n,其中n是用于表示无符号类型的位数).[注意:在二进制补码表示中,此转换是概念性的,并且位模式没有变化(如果没有截断).- 结束注释]
如果目标类型是有符号的,如果它可以用目标类型(和位字段宽度)表示,则该值不变; 否则,该值是实现定义的.

N4141中的4.7/1-3



1> Baum mit Aug..:

该标准允许任意两种整数类型之间的隐式转换,无论它们的值如何.

编译器警告与合法代码无关; 当您的代码可能没有按照您的意愿执行时,编译器会发出警告.

在您的特定情况下,n1将为8并且n2将具有实现定义的值.这两个作业都是合法的C++,但后者可能不是你想要的.


相关标准:

可以将整数类型的prvalue转换为另一个整数类型的prvalue.可以将未范围的枚举类型的prvalue转换为整数类型的prvalue.
如果目标类型是无符号的,则结果值是与源整数一致的最小无符号整数(模2 n,其中n是用于表示无符号类型的位数).[注意:在二进制补码表示中,此转换是概念性的,并且位模式没有变化(如果没有截断).- 结束注释]
如果目标类型是有符号的,如果它可以用目标类型(和位字段宽度)表示,则该值不变; 否则,该值是实现定义的.

N4141中的4.7/1-3


推荐阅读
author-avatar
ID张蕾
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有