以上一行是关于C中隐含的整体促销/转换,取自Mike Banahan Section 2.8.1.1 (Link)的书。这是确切段落的内容:
C不会以比int短的精度完成算术运算,因此几乎每当您在表达式中使用下面列出的对象之一时,这些转换都会隐含。转换定义如下:
每当一个短或一个字符(或我们的字段或枚举类型) 还没有遇到过积分促销活动
- 如果int可以保存原始类型的所有值,那么 value转换为int
- 否则,转换将为unsigned int
以下是我对粗体部分的疑惑。请清楚这些:
虽然我很想将其视为微不足道并继续前进,但我觉得得到正确的解释会更好。谢谢。
答案 0 :(得分:2)
int
类型(根据C标准)不必大于short
。 int
必须“不短于”short
。例如,它们都可以是16位。在这种情况下,可能会有unsigned short
值无法容纳int
。
(C data types上的维基百科页面非常具有启发性。)