整数和浮点提升
整数和浮点促销 会自动用作常规算术转换和缺省自变量促销的一部分。 积分和浮点促销不会更改值的符号或量级。 有关通常算术转换的更多信息,请参阅 通常算术转换。

wchar_t 的积分促销规则
如果某个值的类型为 wchar_t ,那么可以将该值的类型转换为以下类型中的第一个类型,这些类型可以表示底层类型 wchar_t 的所有值:
intunsigned intlong intunsigned long intlong long intunsigned long long int

位字段的积分提升规则
规则适用于以下情况:- -qupconv 选项已生效。
- 整数位字段的类型为
unsigned。 - 整数位字段的类型小于
int类型。
- 如果
unsigned int类型可以表示整数位字段的所有值,那么位字段将转换为unsigned int。 - 否则,不会将任何积分提升应用于位字段。
- 如果
int类型可以表示整数位字段的所有值,那么位字段将转换为int。 - 否则,如果
unsigned int类型可以表示所有值,那么位字段将转换为unsigned int。 - 否则,不会将任何积分提升应用于位字段。

下列规则之一适用于整型位域的升级:- 如果
int类型可以表示整数位字段的所有值,那么位字段将转换为int。 - 否则,如果
unsigned int类型可以表示所有值,那么位字段将转换为unsigned int。 - 否则,不会将任何积分提升应用于位字段。

布尔值的积分提升规则
如果 选项生效,布尔值将转换为 类型,且值不变。 -qupconv unsigned int 否则,如果 -qnoupconv 选项生效,则布尔值将转换为 int 类型,且其值保持不变。 
如果布尔值是 ,则转换为值为0的。 false int 如果布尔值为 true,那么会将其转换为值为 1 的 int 。
其他类型的积分促销规则
规则适用于以下情况:- -qupconv 选项已生效。
- 除位字段和布尔值以外的整数类型的类型为
unsigned。 - 整数类型的类型小于
int类型。
unsigned int 类型。如果不满足其中任何条件,那么下列其中一条规则适用于整数类型的提升:
- 如果整数类型可以由
int类型表示,并且其列组低于int的列组,那么整数类型将转换为int类型。 - 否则,整数类型将转换为
unsigned int类型。

以下规则之一适用于整数类型(wchar_t、位域和布尔值除外)的推广:- 如果整数类型可以由
int类型表示,并且其列组低于int的列组,那么整数类型将转换为int类型。 - 否则,整数类型将转换为
unsigned int类型。

浮点提升规则
可以将 float 类型转换为 double 类型。 提升后不会更改 float 值。