这可能看起来有点愚蠢但是看到Alexandre C 在其他主题中的回复,我很想知道如果内置类型有任何性能差异:
charVSshortVSint主场迎战float主场迎战double.
通常我们在现实生活中没有考虑这种性能差异(如果有的话),但我想知道这是出于教育目的.可以问的一般问题是:
整数算术和浮点运算之间是否有任何性能差异?
哪个更快?更快的原因是什么?请解释一下.
假设我想在循环中迭代所有整数for.为了便于讨论,假设我f(unsigned x)为每个整数调用一些未知函数:
for (unsigned i = 0; i < UINT_MAX; i++) {
f(i);
}
Run Code Online (Sandbox Code Playgroud)
当然,上面的代码无法遍历所有整数,因为它错过了一个:UINT_MAX.将条件更改为i <= UINT_MAX仅导致无限循环,因为这是一个重言式.
你可以用do-while循环来完成它,但是你会失去for语法的所有细节.
我可以吃蛋糕(for循环)并吃掉它(迭代所有整数)吗?
在32位CPU上,整数是4个字节,短整数是2个字节.如果我正在编写一个使用许多数值的C/C++应用程序,它总是符合短整数的提供范围,那么使用4字节整数或2字节整数会更有效吗?
我听说它建议4字节整数更有效,因为它适合从内存到CPU的总线带宽.但是,如果我将两个短整数相加,那么CPU是否会在一次通过中并行封装两个值(从而跨越总线的4字节带宽)?