所以我只是想用连续数字0-255来填充缓冲区.我对此并没有多想,最终陷入无限循环.
uint8_t i;
uint8_t txbuf[256];
for (i=0; i<256; i++) {
txbuf[i] = i;
}
Run Code Online (Sandbox Code Playgroud)
问题是i永远不会是256,因为它在255之后翻了个零.
我的问题是,有没有办法在没有碰到i16位值的情况下执行此循环?
注意:我知道我可以将循环更改i<255为最后一个位置添加另一行,但我试图找出一个更好看的方式.
zav*_*avg 10
uint8_t txbuf[256];
uint8_t i = 0;
do {
txbuf[i] = i;
} while (i++ != 255);
Run Code Online (Sandbox Code Playgroud)
要么
uint8_t txbuf[256];
uint8_t i = 255;
do {
txbuf[i] = i;
} while (i--);
Run Code Online (Sandbox Code Playgroud)
使用do ... while循环以便在检查条件之前执行操作:
uint8_t i = 0;
uint8_t txbuf[256];
do {
txtbuf[i] = i;
} while(i++ < 255);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3932 次 |
| 最近记录: |