rve*_*rve 8 c embedded microcontroller
我想知道是否有一种使用8位数据类型从0到255计数的简洁方法,如:
for(uint8_t i(0);i<=255;++i)
{
....
}
Run Code Online (Sandbox Code Playgroud)
这显然不起作用,但它清楚地表明你想从0到255计数.
一个有效的解决方案是:
uint8_t i(0);
do
{
...
++i;
}
while(i > 0);
Run Code Online (Sandbox Code Playgroud)
但是在这里它根本不清楚从0到255的数量.
这也可以,但它只是丑陋恕我直言:
uint8_t i(0);
while(true)
{
...
if (i == 255)
{
break;
}
++i;
}
Run Code Online (Sandbox Code Playgroud)
所以我想知道,有没有一种干净的方法来做到这一点,而不使用更大的数据类型?
编辑:
ot.*_*ot. 21
关于什么:
uint8_t i = 0;
do {
...
} while (i++ != 255);
Run Code Online (Sandbox Code Playgroud)
我不确定你的意思但是
uint8_t i = 0;
do {
...
} while (++i & 255) ;
Run Code Online (Sandbox Code Playgroud)
应该按照你的要求做,并明确引用255(如果你的编译器是C99标准而uint8_t真的是8位则无用).
显而易见的是什么问题?
i = 255;
do {
work();
} while (i--);
Run Code Online (Sandbox Code Playgroud)