当我们对unsigned short int执行任何操作时,即使在两个数据类型具有相同大小的机器上,它也会被提升为unsigned int。这种促销的目的是什么?它有什么用?这不只是名称的更改(因为两者都有相同的大小)?
答案 0 :(得分:2)
粗略地说,因为这就是Dennis Ritchie决定应该在20世纪70年代早期,当他第一次列出C规则时(或者至少首先为C支持unsigned
制定C规则的方式。整数类型,但那已经因为short
被提升为int
)。
答案 1 :(得分:1)
ANSI C委员会的最初授权是编纂现有的做法,而不是创造一种新的语言。
C标准在通过ANSI和ISO的所有迭代中都非常重视向后兼容性。
换句话说,它是这样做的,因为它总是以这种方式完成: - )
促销完成的原因是因为标准适用于所有实施,包括尺寸不同的实施。
但我不确定你在抱怨什么。类型大小相同的促销不太可能产生性能影响。