有效地重写循环,C

CL2*_*L22 0 c for-loop infinite-loop

我想使用一个字节变量i来执行256次代码.下面的行无限循环,是否有一个整洁的替代方案可行?

for (i = 0; i < 255; i++){
Run Code Online (Sandbox Code Playgroud)

希望不使用:

  • 一个16位变量,(或任何额外的位)
  • 嵌套循环
  • while(1)
  • break; 声明

谢谢

Tim*_*imo 10

i = 0;
do {
  f(i);
} while(i++!=255);
Run Code Online (Sandbox Code Playgroud)


Pet*_*der 5

可以这样做:

for (i = 0; i != 255; ++i)
{
    f(i);
}
f(255);
Run Code Online (Sandbox Code Playgroud)

老实说,你最好只使用一个int.如果你使用8位整数,它不会更快.无论如何它都会在寄存器中.

  • +1.如果你真的想这样做,必须避免索引的更大数据类型. (2认同)