Clang がこのステートメントをコンパイルしていることに気付きました (もちろん、最適化は行われません)。
--x; /* int x; */
の中へ:
addl $4294967295, %ecx ## imm = 0xFFFFFFFF
なんで?addl
「明白な」の代わりに使用する利点はありますsubl
か? それとも単なる実装上の事実ですか?
私をだますのは、これです:
x -= 1;
になります:
subl $1, %eax
クラン情報:
Apple clang バージョン 3.0 (tags/Apple/clang-211.12) (LLVM 3.0svn に基づく) ターゲット: x86_64-apple-darwin11.2.0 スレッドモデル: posix