• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

用IDE编译源代码时 哪些没用上的东西是自动忽略编译减少体积

_落雪千寒灬 2018-08-13 浏览量:807
有时候在写固件驱动时 希望把功能写全 但是又会怕一些用不上的东西写进去了会增大代码体积 所以想问问是不是有些常量 或者函数 源文件 已经添加进了工程或者代码 但又没有用到时 编译器会不会自动优化掉 以减少代码体积(以MDK IAR为例)
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 本来编译就是只编译那些用到的函数,没有用到的函数是不会被编译进固件的。

    楼主可以试一下,生成一个新的.c文件并包含在工程中,但是main中没有用到这个.c文件中的任何函数,编译出来的结果是和原来一样的。

    • 发布于 2018-08-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 没用的代码不会编译进去,编译之前有个预编译,就已经把一些没用的代码处理掉了。

    实际情况,可以反汇编出来看看

    • 发布于2018-08-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 没有调用过的函数是不会被编译进去的,同时,你在编译的时候选择优化等级也会对变量进行相应优化,一般MDK这种可以选O3优化的
    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 你直接打开优化功能,等级高一些,没有的东西就不会编译了
    • 发布于2018-08-14
    • 举报
    • 评论 0
    • 0
    • 0

  • 比较简单的操作是使用编码器的优化功能,会对你的工程代码进行自动优化,很多编译器都有这样的功能
    • 发布于2018-08-15
    • 举报
    • 评论 0
    • 0
    • 0

  • 直接打开编译器的优化功能,专业编译器会自己优化代码
    • 发布于2018-08-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 可以选择优化代码功能,有优化级数可以选择,
    • 发布于2018-08-28
    • 举报
    • 评论 0
    • 0
    • 0

  • mdk和iar的话,不必要添加的.c .h驱动文件不需要添加,因为编译器是默认编译所有加进工程中的.c文件的。
    • 发布于2018-08-31
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

用IDE编译源代码时 哪些没用上的东西是自动忽略编译减少体积