哪个编译后的代码更快:“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);
或者,这是不需要担心的事情,因为优化编译器很可能会在任何情况下都考虑到这一点?