我对在面向64位操作系统时何时使用64位整数有疑问。
是否有人做过针对生成代码速度的定量研究?
使用64位整数作为函数或方法的参数是否更好?(例如:uint64 myFunc(uint64 myVar)) 如果我们使用64位整数作为参数,它将占用更多内存,但也许效率会更高。 如果我们知道某个值始终应小于,例如,10。我们仍然要将这个参数设为64位整数吗?
使用64位整数作为返回类型是否更好? 使用32位作为返回值会有什么惩罚吗?
使用64位整数作为循环变量是否更好?(例如:for(size_t i=0; i<...))在这种情况下,我认为是的。 使用32位变量作为循环变量会有什么惩罚吗?
使用64位整数作为指针索引是否更好?(例如:myMemory[index])在这种情况下,我认为是的。 使用32位变量作为索引会有什么惩罚吗?
对于类或结构中不想保存到磁盘等的数据,使用64位整数是否更好?
将bool类型设为64位是否更好?
关于64位整数和浮点数之间的转换,现在使用double是否更好? 到目前为止,双精度数比单精度数慢。
每次访问32位变量时,是否有惩罚?
谢谢!
<stdint.h>
中的*_fast_*
类型。 - Paul R