我正在阅读http://www.cplusplus.com/doc/tutorial/typecasting/.它说:
否则,如果转换是在相同类型的数字类型之间(整数到整数或浮动到浮动),则转换有效,但该值是特定于实现的(并且可能不是可移植的).
但我真的不明白上面引用的意思是什么?有人请用一个简单的例子解释一下吗?为什么在相同类型的数字类型之间进行转换会导致特定于实现的值?是什么原因?
让我们考虑以下示例:
long long int lli = 5000000000;
long int li;
int i;
li = lli;
i = li;
你能预测的值lli
,li
和i
?还是li
与i
具有相同的价值?
答案是 - 值取决于为每种类型分配的字节数!即,对于某些情况int
是等于long int
,对于其他long int
情况等于long long int
,但一般来说,long
类型只是可以更长.相似(内存大小的意义上)的float
,double
和long double
.