为什么unsigned short int会被提升为unsigned int,即使大小相同?

时间:2012-02-20 06:10:02

标签: c

当我们对unsigned short int执行任何操作时,即使在两个数据类型具有相同大小的机器上,它也会被提升为unsigned int。这种促销的目的是什么?它有什么用?这不只是名称的更改(因为两者都有相同的大小)?

2 个答案:

答案 0 :(得分:2)

粗略地说,因为这就是Dennis Ritchie决定应该在20世纪70年代早期,当他第一次列出C规则时(或者至少首先为C支持unsigned制定C规则的方式。整数类型,但那已经因为short被提升为int)。

答案 1 :(得分:1)

ANSI C委员会的最初授权是编纂现有的做法,而不是创造一种新的语言。

C标准在通过ANSI和ISO的所有迭代中都非常重视向后兼容性。

换句话说,它是这样做的,因为它总是以这种方式完成: - )

促销完成的原因是因为标准适用于所有实施,包括尺寸不同的实施。

但我不确定你在抱怨什么。类型大小相同的促销不太可能产生性能影响。