我发现g编译器几乎没有任何推/弹指令就会生成汇编代码 . 它只在进入/退出功能时使用它们 . 每次它在堆栈中放置字节时,它会产生2或3条指令,例如:

movl    foo, %eax
subl    $4, %esp
movl    %eax, (%esp)`

只是 pushl foo . 这有什么理由吗?它更快还是什么?

谢谢 .