转换和促销是一回事吗?

时间:2015-01-28 04:26:02

标签: c++ types casting

我不确定促销是否意味着将数据类型转换为更大的数据类型(例如shortint)。

或者促销意味着将数据类型转换为另一种数据类型"兼容"数据类型,例如将short转换为int,它将保持相同的位模式(额外的空间将用零填充)。转换是否意味着将int转换为float,这将创建一个完全不同的位模式?

2 个答案:

答案 0 :(得分:6)

促销是内置类型的一种特定转换,保证不会更改该值。

您要宣传的类型 必须能够准确地表示您正在推广来自的类型的任何可能值。

Here is a list适用的转化次数。

答案 1 :(得分:5)

有两件事叫做促销:整体促销和浮点促销。积分促销是指将整数类型(包括位域和enum s)转换为“较大”整数类型,浮点促销特别是floatdouble

这两种类型的促销都是更广泛转化的子集。

  • char - > int:整体推广
  • float - > double:浮动点促销
  • int - > char:[缩小]转化(促销)
  • int - > float:转化
  • const char* - > std::string:转化
  • Foo - > Bar:可能未定义转换?