转换和促销是一回事吗?

6 c++ types casting

我不知道,如果推广只是意味着一个数据类型转换为一个更大的数据类型(例如shortint).

或确实促进指数据类型转换成另一种"相容的"的数据类型,例如转换short到一个int,这将保持相同的比特模式(多余的空间将被用零填充).并且转换意味着将类似inta 转换为a float,这将创建一个完全不同的位模式?

Dre*_*ann 8

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

您正在推动的类型,以必须能准确地代表你是推广的任何类型的可能值.

以下是适用转化的列表.


Bar*_*rry 6

有两件事叫做促销:整体促销和浮点促销.整数提升是指将整数类型(包括位域和enums)转换为"更大"的整数类型,浮点数提升是专门float用于double.

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

  • char- > int:积分推广
  • float- > double:浮点促销
  • int- > char:[缩小]转换(不是促销)
  • int- > float:转换
  • const char*- > std::string:转换
  • Foo- > Bar:可能是未定义的转换?
  • 等等