我只是注意到 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