for(int ii或for(char ii in C?

时间:2014-03-30 14:28:02

标签: c char int

我总是看到有人写for(int ii = 0; ii < 50; ii ++)

但是对于数字&lt; 256,为什么不让人写char ii而不是int ii,因为它确定它是8位而不是更多?

1 个答案:

答案 0 :(得分:5)

C在转换为int的值上执行小于int的所有值的算术运算,并且编译器可能会将ii放入寄存器中,因此使用较小的类型将不会赢得任何东西。由于不断转换回(char),它甚至可能更糟。

接下来,你有一个问题:char只能保证达到127,所以255会超出范围。你必须去找unsigned char。

这并不意味着你的示例循环。对于这个,编译后很可能没有区别。