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



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

  

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

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

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

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




  

相关话题

  华为方舟编译器原理已公布,应当如何看待? 
  sql中为什么select要放在from之前? 
  上网时,为什么感觉现代人除了我全都很懂编程或计算机? 
  为什么说C++的main函数最后不写 return 0; 是不好的习惯? 
  华为公布的方舟编译器到底对安卓软件生态会有多大影响? 
  批判易语言的人是否用过这门语言,批判它的原因又是什么? 
  Golang 的 goroutine 是如何实现的? 
  为什么程序员要使用三元运算符而不是显式写出 if 语句? 
  为什么python整数除法运算得浮点数? 
  使用 open addressing 的 Hash 表载荷过高为什么会降低 CPU 的缓存命中率? 

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





© 2025-01-30 - tinynew.org. All Rights Reserved.
© 2025-01-30 - tinynew.org. 保留所有权利