我编写了以下代码并在CodeBlocks IDE上执行:
main()
{
unsigned char num=1;
unsigned char i=0;
for(i=0;i<255;i++)
{
printf("%d\n",num>>i);
}
}
输出: 1,0,0,..(31 0),1,0 ..(31 0)
num的任何值都会生成一个周期性序列。
我知道超出限制(num的mem size)是未定义的行为,但为什么它是周期性的?
即使你离开了
,也会生成一个周期序列答案 0 :(得分:4)
允许它是周期性的,因为这可能表现为未定义的行为。
不要依赖它。