"ans = n * 3"または "ans = n +(n * 2)"という高速コードにコンパイルされますか?"n * 3"または "n +(n * 2)"という高速コードにコンパイルされますか?
nがintまたはlongのいずれかであり、最新のWin32 Intelボックスで実行されていると仮定します。
逆参照に関連するものがある場合は、これが異なるでしょうか。つまり、どちらが高速でしょうか。
long a; long *pn; long ans; ... *pn = some_number; ans = *pn * 3;
それとも
ans = *pn+(*pn*2);
それとも、それは1つが最適化コンパイラは、どのような場合にはこれを考慮する可能性があるとして、心配する必要はない何かありますか?
私は組み込みソフトウェア開発のためのいくつかの本当に変わったコンパイラを見ました。 – aku
組み込みシステムでは、ほぼすべての従来の知恵が終了します。 ;-) –