我在寻找答案时发现了这个问题,但是我找不到一个清晰明确的答案。
我看到这个答案,他在旁边写道:
对于无符号类型,规则是不同的;将有符号或无符号整数转换为无符号类型的结果是被定义的。
那么这个“被定义”的行为是什么呢?
当从unsigned long long
转换为unsigned int
时,是否存在定义好的行为?它只是截断32位的MSB(留下32位LSB)吗?
假设我的系统上 sizeof(unsigned int)
是 4
,sizeof(unsigned long long)
是8
,在没有强制转换的情况下赋值和进行强制转换赋值是否存在不同的行为?