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



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

  

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

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

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

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




  

相关话题

  如何评价 VBA 语言? 
  如何评价C语言让数组退化为指针的设计? 
  C++编译器能不能弃用指针,只允许用引用? 
  如何理解编程语言中「流」(stream)的概念? 
  为什么 Python 的 GIL 问题一直让人诟病,Python 社区却不解决? 
  像C语言这样的编译型语言能否在不同CPU上,通过相同标准库的编译器,用源代码实现跨平台? 
  2016年,你读过的最好的IT技术书有哪几本? 
  如果让你来重新设计(或者改造)C++,你打算怎么设计或者修改? 
  以下十种编程语言能在未来替代 Java 和 C 语言么? 
  C/C++ 里指针声明为什么通常不写成 int* ptr 而通常写成 int *ptr ? 

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





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