我不确定促销是否意味着将数据类型转换为更大的数据类型(例如short
到int
)。
或者促销意味着将数据类型转换为另一种数据类型"兼容"数据类型,例如将short
转换为int
,它将保持相同的位模式(额外的空间将用零填充)。转换是否意味着将int
转换为float
,这将创建一个完全不同的位模式?
答案 0 :(得分:6)
答案 1 :(得分:5)
有两件事叫做促销:整体促销和浮点促销。积分促销是指将整数类型(包括位域和enum
s)转换为“较大”整数类型,浮点促销特别是float
到double
。
这两种类型的促销都是更广泛转化的子集。
char
- > int
:整体推广float
- > double
:浮动点促销int
- > char
:[缩小]转化(不促销)int
- > float
:转化const char*
- > std::string
:转化Foo
- > Bar
:可能未定义转换?