如何发现没有使用的函数?

john 2009-02-03 09:41:38

目前流行的各种C、C++编译器中,如何发现一个项目(工程)中,说明过、定义过,但未使用过(uncalled)的函数?(函数= 各种类型的函数)

以前曾经用过一种编译器,可以产生一个表:程序中所有使用过的符号,所在程序行号。在其中一眼就可以发现,仅仅存在文本中一个行的符号。

如果用其它的辅助工具:
在UNIX系统中,有一个lint工具可用。WIN下有个pclint工具可用。



ps:

1 编译器通过优化选项,在链接的时候,链接器还可以将未调用过的函数剔除。

2 发现“未使的变量”问题。一般编译器,都可以胜任。
摘GCC手册一段:
-Wunused选项
如果某个局部变量除了声明就没再使用,或者声明了静态函数但是没有定义,或者某条语句的
运算结果显然没有使用, 编译器就发出警告.
...全文
75 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
waizqfor 2009-02-03
  • 打赏
  • 举报
回复
UP
yellowhwb 2009-02-03
  • 打赏
  • 举报
回复
一般编译器都会给出警告的,优化后会剔除没有使用的函数和变量,我用仪器跟过代码,汇编里根本就找不到没使用的函数!
至于是否能把未使用的函数和变量列在表格里,这个属于附加功能吧,编译器可以不要做这个功能的!自己写代码,对编译后生成的文本进行检测,也可以把这个表格列出来的!
有什么好工具lz推荐一下:)
OenAuth.Core 2009-02-03
  • 打赏
  • 举报
回复
编译器警告未使用的变量肯定有它的理由,不过我还不知道什么理由,呵呵UP。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧