次のような8ビットデータ型を使用して0から255までをカウントするクリーンな方法があるかどうか疑問に思いました。
for(uint8_t i(0);i<=255;++i)
{
....
}
これは明らかに機能しませんが、0から255までカウントしたいことが明確になります。
実用的なソリューションは次のようになります。
uint8_t i(0);
do
{
...
++i;
}
while(i > 0);
しかし、ここでは、0から255までカウントされることはまったく明確ではありません。
これも機能しますが、それは醜い私見です:
uint8_t i(0);
while(true)
{
...
if (i == 255)
{
break;
}
++i;
}
だから私は疑問に思っていました、より大きなデータ型を使用せずにこれを行うためのクリーンな方法はありますか?
編集:
- を使用しているバージョンが好きなのは、0から255までループすることを考えずにその意図を明確にするためです。他のすべてのバージョンでは、何が起こっているかについてある程度考える必要があるため、他のバージョンを混乱させる可能性が高くなります。
- コードはメモリの少ない8ビットマイクロコントローラ用であるため、intは使用しません。