比如说我们常见的:
for (int i = 0; i < 50; i++)
{
...
}很明显,50对于int来说太小了,我老是觉得浪费,于是这种情况下,我经常用BYTE型代替int,后来一想,因为CPU是32位的,所以计算两个int数相加与计算两个BYTE数相加,计算时间上应该是完全一样的,因为32位CPU一次可计算32位,每一位是绝对并行的。那么我这种作法恐怕只能是省一点内存了,可是听说内存在分配上又有一定的原则,有个最小单位,我记得最小单位应该不是1字节,那么我这种作法就完全没有实际意义了?
for (int i = 0; i < 50; i++)
{
...
}很明显,50对于int来说太小了,我老是觉得浪费,于是这种情况下,我经常用BYTE型代替int,后来一想,因为CPU是32位的,所以计算两个int数相加与计算两个BYTE数相加,计算时间上应该是完全一样的,因为32位CPU一次可计算32位,每一位是绝对并行的。那么我这种作法恐怕只能是省一点内存了,可是听说内存在分配上又有一定的原则,有个最小单位,我记得最小单位应该不是1字节,那么我这种作法就完全没有实际意义了?
解决方案 »
- xianglitian请进,我用了你的自适应对话框
- 同一个代码在OnInitialUpdate()函数中没问题,在OnSize()函数中出错
- 这个怎么会是错的,郁闷
- 如何打印自定义的结构体里的内容
- 如何删掉按钮上位图的背景色
- DEBUG版在 IE 中运行不能关闭对话框?以前好好的,怪事!
- 我的对话框中有一个属性页,请问如何把对话框的句柄传给属性页中的其中一个对话框呢?
- 晕,怎么为 可变参数的回调函数 写宏定义
- 在单文本文档中加入新的TOOLBAR应该如何操作?
- 如何通过VC创建“宽带连接”的桌面快捷方式? 求教
- 熬过来啦,又升一级!散分!
- GetQueuedCompletionStatus一直阻塞??
用int比byte快!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
但是內存分配來說 int 型的長度在不同的 OS 下編譯都不同,但是在 Win 下是 OS 的默認長度,一般 OS 是32位,它長度也是 32 位, OS 是16位,它長度也是 16位。
但是byte 的長度一定是固定的,也就是一字節8位長。
在速度上來說,要看你的數據是立即數還是變量,立即數肯定要快,變量要慢,但與這兩個數據類型無關,因為它們的長度都小於或等於寄存器長度。