{
uint64_t u64_1 = 0;
uint32_t u32_1 = 0xFFFFFFFF;
u64_1 = u32_1 + 1;
}
如上此时u64_1 = 0x0, 而不是预期的0x1 0000 0000;
{
uint64_t u64_1 = 0;
uint32_t u32_1 = 0xFFFFFFFF;
u64_1 = (uint64_t)u32_1 + 1;
}
如上结果则是预期的0x1 0000 0000;
由于需要强制类型转换,代码编写时很容易出现遗漏,请问是否有其他解决方案?
这个没办法,你得将其中一个加法元素定义为uint64_t才行