检测C中未使用的功能和代码

时间:2011-09-13 13:13:27

标签: c

我用C编写程序。有没有办法(gcc选项)在编译期间识别未使用的代码和函数。

3 个答案:

答案 0 :(得分:4)

如果您使用-Wunused-function,您将收到有关未使用功能的警告。 (请注意,使用-Wall)时也会启用此功能。

有关详细信息,请参阅http://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html

答案 1 :(得分:3)

gcc -Wall会警告您未使用的static函数和其他一些类型的无法访问的代码。但是,它不会警告带有外部链接的未使用函数,因为这样就无法编写库。

答案 2 :(得分:1)

不,在编译时无法做到这一点。所有编译器都会创建目标代码 - 它不知道可能会也可能不会调用您编写的函数的外部代码。你有没有写过一个叫main的程序?链接器确定应用程序中是否使用了函数(特别是符号)。我认为GCC默认会删除未使用的符号。