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?不是都有可能吗 ?
展开
 我来答
lovebblyc
2012-09-28 · TA获得超过287个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:116万
展开全部
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还有什么操作。或者说代码有问题
hk_ziyoutt
2012-09-28 · TA获得超过114个赞
知道答主
回答量:68
采纳率:100%
帮助的人:61万
展开全部
因为U8FLAG是unsigned char类型,所以它可以表示的最大值为255,最小值为0,当循环执行255次时,U8FLAG的值就变成1了(初值为2,自加253次时,值为255,254次时,溢出,归零,255次时就是1)。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hearingmax
2012-09-28
知道答主
回答量:30
采纳率:0%
帮助的人:9.3万
展开全部
unsigned char,无符号类型,只有正数,没负数.溢出,即超过unsigned char定义的范围,U8FLAG就会等于1了.纯属个人理解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友3f3a9db
2012-09-28
知道答主
回答量:29
采纳率:0%
帮助的人:11.7万
展开全部
U8FLAG是unsigned char,它能表示的范围是固定的0-127,持续++,终归会有等于1的时候。
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wszxxhd
2012-09-28 · TA获得超过4408个赞
知道小有建树答主
回答量:528
采纳率:0%
帮助的人:404万
展开全部
当U8FLAG 累加到FF 之后再累加就是1了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式