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



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

  

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

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

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

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




  

相关话题

  不同语言代码量大致换算? 
  大部分语言都用尖括号<>表示泛型,为什么golang要标新立异用中括号? 
  在有能够转化为C、C++、Java的第四代语言Raptor的情况下,为什么还需要C等程序设计语言? 
  为什么.Net托管语言可以实现这些特性? 
  毫无编程基础的小白准备学习C语言,用VC6还是VS2015? 
  如何看待胡渊鸣创业成立太极图形团队? 
  为什么C语言用int *a 来声明指针变量,而不是int &a声明? 
  怎么看待 Linus 和 Richard Stallman 对 C++ 的态度? 
  能否把高版本的libstdc++静态连接到一个只暴露纯C接口的动态库中,给低版本c++程序调用? 
  C语言开发单片机为什么大多数都采用全局变量的形式? 

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





© 2025-04-25 - tinynew.org. All Rights Reserved.
© 2025-04-25 - tinynew.org. 保留所有权利