首页 > 其他分享 >clang和gcc一些不同

clang和gcc一些不同

时间:2023-04-01 14:34:45浏览次数:36  
标签:gcc 字节 esp int 不同 clang ebp

环境

-m32 -O0
x86-64 clang 12.0.0
x86-64 gcc 10.1

不同

栈帧开辟

int main(){
  int a=1;
  int b=2;
}

在clang下开辟栈帧的代码是这样的。

pushl %ebp
movl %esp, %ebp
subl $8, %esp

局部变量大小是多少,就开多少

但在gcc下是这样的

pushl %ebp
movl %esp, %ebp
subl $16, %esp

会多出8字节,后续代码就不放了,观察发现gcc生成的栈帧每次都以16字节增加。怎么理解,举个例子,假如某个函数只用int局部变量,用的变量个数小于等于4个,栈帧开辟16字节,变量个数大于4小于等于8,开辟32字节,以此类推。而clang每次生成的大小都正正好。不知道gcc为什么要这样。

标签:gcc,字节,esp,int,不同,clang,ebp
From: https://www.cnblogs.com/sorisuto/p/17278576.html

相关文章

  • 在 Debian 11 安装 GCC
     步骤1.在我们安装任何软件之前,通过apt在终端中运行以下命令来确保您的系统是最新的很重要:sudoaptupdatesudoaptupgradesudoaptinstallbuild-essential步骤2.在Debian11上安装GCC。默认情况下,GCC在Debian基础存储库中可用,并且可以使用APT包管理器轻......
  • 如何实现根据环境切换不同配置?
    首发于公众号:BiggerBoy前言在企业开发中,系统的配置信息往往会分不同的环境,如开发环境、测试环境、生产环境。当我们使用nacos作为配置中心时,一定会遇到的问题就是在应用中配置nacos的server-addr时测试环境的nacos地址和线上nacos地址如何区分的问题拿开发环境和正式环境来说......
  • win10下安装gcc
    win10下安装gccnews来源:原创2023/3/3114:31:11 win10下安装gcc一、gcc是什么?1.1、安装gcc第一次安装,记录一下 一、gcc是什么?GNU编译器套件(GNUCompilerCollection)包括C、C++、Objective-C、Fortran、Java、Ada和Go语言的前端,也包括了这些语言的库(如l......
  • django自定义模板显示不同状态的颜色
    一般这个颜色列表是放在models.py里charge_type_class_mapping={1:"success",2:"danger",3:"default",4:"info",5:"primary",} color.pyfromdjango.templateimportLib......
  • java两个不同类的对象相同属性赋值
    一、外部工具包Java中有很多工具包可以用来实现对象属性复制,其中比较常用的有以下几个:ApacheCommonsBeanUtils:提供了一组简单易用的API,可以实现对象属性的复制、获取、设置等操作。SpringFrameworkBeanUtils:与ApacheCommonsBeanUtils类似,提供了一组API,可以实现对......
  • ISO三体系认证标准的相同点和不同点?
    ISO三体系认证标准的相同点和不同点?三体系标准的相同点和不同点实施ISO9001、ISO14001、ISO45001三个体系标准的相同点和不同点导读:ISO三体系是企业的万金油,各行各业的招投标都需要ISO三体系资质证书,企业如未申请ISO三体系证书,尽快申请,以备将来之需。ISO三体系认证的效益1、......
  • redis cluster 故障后,主从位于不同节点的修复【转】
    今天机房有一台物理机宕机了,有一个虚拟机192.168.1.122,其上有两个redis节点也不能用了。    redis没有备份,丢失的192.168.1.122节点只能重建。    我找运维的......
  • 基于matlab的16QAM的误码率性能仿真,输出误码率曲线和不同信噪比下的星座图
    1.算法描述       正交幅度调制(QAM,QuadratureAmplitudeModulation)是一种在两个正交载波上进行幅度调制的调制方式。这两个载波通常是相位差为90度(π/2)的正弦波,因......
  • win10系统,如何在Microsoft Edge浏览器中使用IE浏览器的不同版本测试网页兼容性?
    win10系统中,当我的打开系统内置的IE浏览器时,我们发现网页会自动通过edge浏览器打开。那我们如果要开发一个可以兼容不同IE版本的网站时,该如何测试IE浏览器的兼容性呢?在Wi......
  • 了解一下实验室马弗炉面对不同试验的方法
    实验室马弗炉原理高温炉加热室用耐火材料及碳化硅、氧化镁、氧化铝等制成,电热丝为镍铬合金丝。实验室马弗炉外部由铁板制成,涂以皱纹漆,炉门上有一小孔,嵌以透明的云母片,......