我编程有个习惯,定义变量时如果要存的数据很小,总不由自主的申明成短的数据类型,如要存的数在几十左右,我可能会选择用char型,当然我以前并没有深究这个问题,最近我考虑了一下,似乎还是应该申明成int型,因为32位系统,CPU一次就能传输32位,一个脉冲就能计算32位,一个char型和一个int型除了内存占有量不同外,处理起来几乎完全是一样的,char型在参与计算时仍要转换成32位,例如char + 1和int + 1,他们在CPU中运算的时候其实应该是一样的,就像1+1和100+100一样,所用时间绝对是一样的,因为对于位来说,处理是绝对并行的。
    这一点大家可以用移位操作来实验,不要以为char >> 8会比int >> 8快,他们都是先转化成int后再移位的,所以:char c = cc(char型) >> 1会有警告,说把int赋给char可能丢失数据。
    所以我认为,操作中如果用比int还低的数据类型去参与计算,不但速度并不会像想像中的加快,反而会慢,因为计算完了还要截位!
    当然,我并不是说char型就没有毕要存在了,当使用数组的时候,使用合适的类型会节省大量的空间。我是说单单几个变量,还是int好,例如:
for(char c = 0; c < 10; c++)
这样的句子其实是没有什么意义的。    大家对我上面说的有什么看法?注:上面所说的不针对浮点数。