是否可以保证这段代码在任何平台上的打印值始终为0到15?
#include <stdio.h>
typedef struct UI4{
unsigned value: 4;
} ui4;
int main(void)
{
ui4 u;
u.value = 0;
while (1) {
printf("%u\n", u.value++);
}
return 0;
}
答案 0 :(得分:4)
是的,保证无符号整数溢出&#34;环绕&#34;按标准。
答案 1 :(得分:2)
我认为理论上一些非常奇怪的架构会产生不同的结果(基于BCD的计算机)?但也许在这种情况下,它不是一个合规的实现。实际上你应该得到4位为0到15.但不要故意溢出我说。