除了签名较小类型并且< 0和更大是无符号的,是否有任何其他情况,将较小的int类型分配给较大的int类型可能是不安全的?
答案 0 :(得分:1)
我认为不可以。因为较大的类型可以容纳较小类型的所有比特信息。唯一的问题可能是签名/未签名的事情(因为混合使用unsigned签名时总是如此)。但随后您可以随时取回原始值。没有信息丢失。
signed short s = -1;
unsigned int i = s;
signed short originalValue = (signed short)i;
cout << s << endl;
cout << i << endl;
cout << originalValue << endl;
输出:
-1
4294967295
-1
答案 1 :(得分:1)
据我所知,将较小的整数类型分配给大整数类型没有问题。
问题是相反的。