为什么`static_cast <int>(uint32_t)`会意外工作?

时间:2018-10-29 22:18:23

标签: c++ static-cast uint32

以下代码完成了预期的操作

uint32_t a = 1, b = 2;
std::cout << static_cast<int64_t>(a) - b << '\n';

打印-1。 但是,如果我将int64_t更改为int,一切都会中断:

std::cout << static_cast<int>(a) - b << '\n';

打印4294967295

有人知道这是什么招吗?

0 个答案:

没有答案