查看優化級別大於0時的彙編代碼
gcc -O1 -S test.c
- foo:
- pushl %ebp
- xorl %eax, %eax
- movl %esp, %ebp
- cmpl $9, 8(%ebp)
- popl %ebp
- setg %al
- decl %eax
- andl $-100, %eax
- addl $200, %eax
- ret
這段彙編代碼類似於下面這段代碼, (實際上 三元運算符 ? : 還是條件判斷,這裏只是用來表達 ‘不用跳轉’這個意思):
優化之後,少了條件判斷,程序無須跳轉,這樣流水線不用被清空,程序效率就提高了.