好吧,我从未尝试过for循环。我想将for循环增加8而不是一般的后增量。我正在尝试这样的事情。
for(U8 i=3;i<=31;i+8,j++){
Array[j]=(Status>>i) ;
if (j>3){
j = 0;
}
}
好吧它给我一个警告,比如逗号表达式的左手操作数没有效果。这个警告是什么意思?我的逻辑会起作用吗? status包含我系统的32位信息,我需要特别的位。
答案 0 :(得分:5)
根据你的评论&#34;它会在循环中每次将i的值增加8吗?&#34;
i+8
对i
没有影响,
将其更改为i+=8
答案 1 :(得分:4)
回答所述的字面问题......
警告的原因仅仅是因为for循环,第三部分中逗号的左侧将不起作用。 i+8
不会改变任何内容,而是返回一个值。
相反,您需要复合赋值加法运算符+=
i+=8
,它将向i
的当前值添加8。 (See the Documentation)
for(U8 i=3;i<=31;i+=8,j++){