哪个编译成更快的代码:“ans = n * 3”或“ans = n+(n*2)”?
假设 n 是 int 或 long,并且它在现代 Win32 Intel 机器上运行。
如果涉及一些取消引用,这会有所不同吗,也就是说,哪一个会更快?
long a; long *pn; long ans; ... *pn = some_number; ans = *pn * 3;
或者
ans = *pn+(*pn*2);
或者,这是不需要担心的事情,因为优化编译器可能会在任何情况下解决这个问题?
最佳答案
在我看来,这种微优化是没有必要的,除非你使用一些奇异的编译器。我会把可读性放在首位。
关于c++ - 编译成更快的代码 : "n * 3" or "n+(n*2)"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53757/