如果必须使用无符号字符类型的变量
i
,那么在不进入无限循环的情况下执行类似操作的优雅方式是什么?for (unsigned char i = 0; i < 256; ++i) {
printf("%d\n", i);
}
unsigned char i = 0;
do {
printf("%u\n",i);
}while(++i != 0);
在循环测试中进行递增并针对包装值进行测试。
uint16_t
代替。uint8_t
作为迭代器类型来写一个晦涩难懂的循环,并注释说明为什么这样做。uint16_t
或更大的整数类型。for (unsigned char i = 0; ; ++i) {
printf("%d\n", i);
if(i==255)
break;
}
unsigned char i = 0;
while( ) {
printf("%d\n", i);
if(i==255)
break;
++i;
}
甚至可以将检查推开:
for (unsigned char i = 0; i++ < 255; ) {
printf("%d\n", i);
}
int
替换其中,它仍然有效。