百科问答小站 logo
百科问答小站 font logo



编译器怎么处理定义但未使用的函数? 第1页

  

user avatar   zhang-hao-72 网友的相关建议: 
      

别的编译器不知道, gcc打开编译参数-ffunction-sections和-fdata-sections, 链接参数 -Wl,--gc-sections就行了, 源程序里没有被调用到的函数/静态数据不会链接到最终的执行文件. 不开的话就真的都编译链接进去了.

sdcc至今没加上这个功能, 编译出来的二进制代码就大得多, 所以许多sdcc下的库都拆成了每个文件一个函数的形式.

至于警告... static函数如果没有用到, 编译时会有warning. 非static函数的话, 编译阶段没法知道是否在外部调用了, 所以没法报警了.




  

相关话题

  如何想学点编译原理,又不想直接看龙虎之类的书籍,太多理论,干燥? 
  编程语言会影响程序员的性格吗? 
  为什么C#的.NET库不默认提供「优先队列」容器? 
  想裸写编译器,除了编译原理外还有那些资料可以参考?应该从什么开始写起?(用c/c++)? 
  “C++”读作「C 加加」,为什么“C#”不能读作「C 井」呢? 
  如果C#开放了值类型的继承,会有什么问题发生? 
  站在 2020 年回看,如何评价 Python 2 到 3 的升级? 
  为什么那些会多国语言的人常常被赞赏,貌似没什么人因为精通各种编程语言而赞赏程序猿? 
  C#相对路径 连接Access数据库怎么写?? 
  面向对象(OOP)是编程语言发展中的弯路吗?为什么? 

前一个讨论
地球去火星除了霍曼转移轨道就没有其他捷径了吗?
下一个讨论
为什么历史总是相似的,导致其相似的深层次因素是什么?





© 2024-12-23 - tinynew.org. All Rights Reserved.
© 2024-12-23 - tinynew.org. 保留所有权利