这篇好好说话
c -> 汇编 -> 机器语言
二进制的 .o 文件可以通过objdump反汇编成汇编代码,然后就可以通过汇编代码仔细地考察c代码的效率啦
从效果上来说感觉对应地还不错
书上的例子:
int accum = 0;
int sum(int x,int y)
{
int t = x + y;
accum += t;
return t;
}
反汇编一下 (因为1级优化太狠了栈操作都没了所以为了看清楚用了0级优化与书上不太相同)
gcc -O0 -S sum1.c
gcc -O0 -c sum1.c
objdump -d sum1.o
反汇编代码:
sum1.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <sum>:
0: 55 push %rbp ##压栈
1: