Что компилируется в более быстрый код: "ans = n * 3" или "ans = n + (n * 2)"?
Предполагая, что n - это либо целое число, либо длинное, и оно работает на современном Win32 Intel Box.
Было бы по-другому, если бы была задействована какая-то разыменование, то есть какая из них была бы быстрее?
long a;
long *pn;
long ans;
...
*pn = some_number;
ans = *pn * 3;
Или
ans = *pn+(*pn*2);
Или вам не о чем беспокоиться, поскольку оптимизирующие компиляторы в любом случае могут объяснить это?