6.3.1.1
如果int可以表示原始类型的所有值(限制为 通过宽度,对于一个位域,该值被转换为int; 否则,它将转换为unsigned int。这些被称为 整数促销。
这意味着,如果我在表达式中使用long int
,它将降级为unsigned int
?
答案 0 :(得分:3)
您引用的位受上面文本的限制:
无论是int还是unsigned,都可以在表达式中使用以下内容 可以使用int:
- 具有整数类型的对象或表达式,其整数转换等级小于int和unsigned int的等级。
- _Bool,int,signed int或unsigned int。
类型的位字段如果int可以表示原始类型的所有值,则值为 转换为int;否则,它将转换为unsigned int。 这些被称为整数促销。所有其他类型都保持不变 通过整数促销。
换句话说,long int
未升级为int
或unsigned int
。
答案 1 :(得分:1)
我认为“原始类型”是指“[...]整数类型(除了int或unsigned int之外) 其整数转换等级小于或等于int和的等级 unsigned int“,如前面第6.3.1.1.2节中所定义。但是,很好的尝试:)