在研究 C 转换时,我发现了一段关于 Integer Promotions 的我不太了解的段落,它说:
"Integer types smaller than int are promoted when an operation is performed on them. If all values of the original type can be represented as an int, the value of the smaller type is converted to an int; otherwise, it is converted to an unsigned int"
考虑到:
任何无符号整数类型的秩等于相应有符号整数类型的秩
long long int 的rank 大于long int 的rank,long int 的rank 大于int 的rank,short int 的rank 大于signed char 的rank。
问题是:为什么小于 int 的类型不应该用 int 表示?为什么 unsigned int 可以代表一个 int 不应该代表的值?
提前致谢。