我总是看到有人写for(int ii = 0; ii < 50; ii ++)
但是对于数字&lt; 256,为什么不让人写char ii
而不是int ii
,因为它确定它是8位而不是更多?
答案 0 :(得分:5)
C在转换为int的值上执行小于int的所有值的算术运算,并且编译器可能会将ii放入寄存器中,因此使用较小的类型将不会赢得任何东西。由于不断转换回(char),它甚至可能更糟。
接下来,你有一个问题:char只能保证达到127,所以255会超出范围。你必须去找unsigned char。
这并不意味着你的示例循环。对于这个,编译后很可能没有区别。