默认情况下,将帧指针放在64位体系结构上的理由是什么?我很清楚它可以启用但是为什么GCC在启用32位时首先禁用它?毕竟,64位的寄存器多于32位CPU.
编辑: 当使用更新的GCC版本时,看起来也会为x86删除帧指针.从手册:
"从GCC版本4.6开始,32位Linux x86和32位Darwin x86目标的默认设置(不优化大小时)已更改为-fomit-frame-pointer.默认设置可以恢复为-fno-通过使用--enable-frame-pointer配置选项配置GCC来省略帧指针."
但为什么?