当前位置: 首页 > news >正文

对比显式启用-u_printf_float和-u_scanf_float前后的代码内存体量实验

本文的嵌入式编译器基于GCC for ARM,构建文件基于Makefile

  • main.c不编写任何代码,保证实验的其他变量统一。源文件main.c
    在这里插入图片描述
  • 优化等级固定为 -Og
    在这里插入图片描述
  • syscalls.c 系统调用库函数文件参考:基于GCC for ARM交叉编译工具链的串口重定向printf输出

下面开始作实验对比:

实验一:全部显式启用 -u_printf_float-u_scanf_float ,编译出的代码内存体量为23440B+464B=23904B。如下图所示:在这里插入图片描述

实验二:只显式启用 -u_printf_float ,不显式启用 -u_scanf_float ,编译出的代码内存体量为15252B+464B=15716B。如下图所示:
在这里插入图片描述

实验三:只显式启用 -u_scanf_float ,不显式启用 -u_printf_float ,编译出的代码内存体量为18556B+464B=19020B。如下图所示:
在这里插入图片描述

实验四:关闭全部显式启用 -u_printf_float-u_scanf_float ,编译出的代码内存体量为1108B+8B=1116B。如下图所示:
在这里插入图片描述

总结:

实验一实验二实验三实验四
-u_printf_float、-u_scanf_float只启用-u_printf_float只启用-u_scanf_floatNone
23904B15716B19020B1116B

可以得到明显的结论:显式启用 -u_printf_float-u_scanf_float 会增加将近 23904B - 1116B = 22788B ≈ 22.25KB 的代码体量。


http://www.mrgr.cn/news/82784.html

相关文章:

  • 基于FPGA的出租车里程时间计费器
  • 自然灾害事件复盘分析的思考框架
  • 【Linux】硬链接和软连接(符号连接)
  • 如何从串 ‘ 中国 +86‘ 中,获取到‘中国’:strip()、split()及正则表达式的使用
  • 大模型RAG面试内容有哪些?(附面试资料合集)
  • 【软考网工笔记】计算机基础理论与安全——计算机硬件知识
  • 基于Arduino的FPV头部追踪相机系统
  • 网络的分类与体系结构
  • ply和splat点云在线转换工具
  • 大数据组件(三)快速入门实时计算平台Dinky
  • Vmware安装centos
  • 【Windows】Windows系统中怎么查看被隐藏的文件夹?
  • Python教程丨Python环境搭建 (含IDE安装)——保姆级教程!
  • JDK、JRE、JVM三者的关系、JDK8的新特性、JVM内存结构,堆栈的区别
  • MyBatis学习笔记-数据加密解密
  • github gitbook写书
  • vue项目上传ofd文件,导致文件类型丢失问题
  • 【C#】C# 使用onnxruntime报错记录
  • 51单片机——步进电机模块
  • 【AI落地】AI生成测试用例,claude or gpt?(提效至少 50%)
  • Linux: 关于 mount 的一些细节
  • STM32 I2C通信外设
  • FreeSWITCH 呼出之我见
  • java常见面试题
  • [备忘.OFD]OFD是什么、OFD与PDF格式文件的互转换
  • 起重机检测数据集VOC+YOLO格式2316张1类别