比如说我们常见的:
for (int i = 0; i < 50; i++)
{
...
}很明显,50对于int来说太小了,我老是觉得浪费,于是这种情况下,我经常用BYTE型代替int,后来一想,因为CPU是32位的,所以计算两个int数相加与计算两个BYTE数相加,计算时间上应该是完全一样的,因为32位CPU一次可计算32位,每一位是绝对并行的。那么我这种作法恐怕只能是省一点内存了,可是听说内存在分配上又有一定的原则,有个最小单位,我记得最小单位应该不是1字节,那么我这种作法就完全没有实际意义了?

解决方案 »

  1.   

    如果你用得是windows默认得4字节对齐得话
    用int比byte快!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
      

  2.   

    同意hamimelon(夜过留香) !
      

  3.   

    不是因为四字节对齐,而是因为32位的CPU其寄存器和指令长都是32位的。
      

  4.   

    在指針轉換來說都一樣,int 型的指針與byte 的指針是一樣長的,與OS的默認長度相同。
    但是內存分配來說 int 型的長度在不同的 OS 下編譯都不同,但是在 Win 下是 OS 的默認長度,一般 OS 是32位,它長度也是 32 位, OS 是16位,它長度也是 16位。
    但是byte 的長度一定是固定的,也就是一字節8位長。
    在速度上來說,要看你的數據是立即數還是變量,立即數肯定要快,變量要慢,但與這兩個數據類型無關,因為它們的長度都小於或等於寄存器長度。