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