C隐式转换?

C implicit conversion?

谁能给我解释一下

printf("%d", -2<2u?1:-1);

打印出“-1”。我假设正在进行某种隐式转换,但我似乎无法理解它。

-2 正在转换为 unsigned integer。这将等于 UINT_MAX - 1,肯定大于 2。因此,条件失败并打印 -1