C语言的问题 好像很基础 但是我不懂 求指教!!
typedefunsignedcharU8;U8U8FLAG=2;while((P2_0)&&U8FLAG++);if(U8FLAG==1)break;不知道在什么情况下...
typedef unsigned char U8;
U8 U8FLAG=2;
while((P2_0)&&U8FLAG++);
if(U8FLAG==1)break;
不知道在什么情况下U8FLAG==1 ??那个++不是不一定回只等于1吗?或者等于2?3?不是都有可能吗 ? 展开
U8 U8FLAG=2;
while((P2_0)&&U8FLAG++);
if(U8FLAG==1)break;
不知道在什么情况下U8FLAG==1 ??那个++不是不一定回只等于1吗?或者等于2?3?不是都有可能吗 ? 展开
6个回答
展开全部
typedef unsigned char U8;//给unsigned char取个别名,U8
U8 U8FLAG=2;//相当于定义unsigned char U8FLAG=2
while((P2_0)&&U8FLAG++);
if(U8FLAG==1)break;
U8FLAG可以等于1,因为unsigned char 表示数的范围是0到255,当U8FLAG=255时,在做++运算,U8FLAG就等于0了,再做一次++就等于1了,不过在上述程序中不可能实现U8FLAG=1呀!当U8FLAG=0时,while条件不符合,就 不进入循环了。除非在其他地方对U8FLAG还有什么操作。或者说代码有问题
U8 U8FLAG=2;//相当于定义unsigned char U8FLAG=2
while((P2_0)&&U8FLAG++);
if(U8FLAG==1)break;
U8FLAG可以等于1,因为unsigned char 表示数的范围是0到255,当U8FLAG=255时,在做++运算,U8FLAG就等于0了,再做一次++就等于1了,不过在上述程序中不可能实现U8FLAG=1呀!当U8FLAG=0时,while条件不符合,就 不进入循环了。除非在其他地方对U8FLAG还有什么操作。或者说代码有问题
展开全部
因为U8FLAG是unsigned char类型,所以它可以表示的最大值为255,最小值为0,当循环执行255次时,U8FLAG的值就变成1了(初值为2,自加253次时,值为255,254次时,溢出,归零,255次时就是1)。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
unsigned char,无符号类型,只有正数,没负数.溢出,即超过unsigned char定义的范围,U8FLAG就会等于1了.纯属个人理解
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
U8FLAG是unsigned char,它能表示的范围是固定的0-127,持续++,终归会有等于1的时候。
来自:求助得到的回答
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
当U8FLAG 累加到FF 之后再累加就是1了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询