可以将较小的整数类型分配给较大的整数类型是不安全的吗?

时间:2011-04-16 09:08:53

标签: c++

除了签名较小类型并且< 0和更大是无符号的,是否有任何其他情况,将较小的int类型分配给较大的int类型可能是不安全的?

2 个答案:

答案 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

在线演示:http://ideone.com/z3G9x

答案 1 :(得分:1)

据我所知,将较小的整数类型分配给大整数类型没有问题。

问题是相反的。