C:确认简单的算术输出

tyt*_*yty 3 c math int unsigned undefined

我可以确认以下C代码为b提供了未定义的结果:

unsigned a = 0;
int b = a - 1;
Run Code Online (Sandbox Code Playgroud)

Jer*_*fin 6

(§6.3.1.3/ 3):"......结果是实现定义的,或者引发实现定义的信号."

在典型的二进制补码硬件上,我希望结果为-1.

请注意,结果是实现定义,而不是未定义.