什么原因导致编译器警告未使用的函数?

时间:2013-02-02 13:51:45

标签: c arrays prototype function-pointers gcc-warning

简单设置:函数的功能和实现有n个原型。有一大堆函数指针。每个函数都列在此数组中。在使用gcc进行编译时,有些仍会导致-Wunused-function。

代码:

void foo1(void);
void foo2(void);
void bar1(void);
void bar2(void);

/* and their implementations */

void (*functions[])(void) = { foo1, foo2, bar1, bar2 };

这就是设置的样子(只是一个例子)!其中一个foo / bar函数现在在使用gcc编译时会导致-Wunused-function警告。其他人没有。为什么呢?

1 个答案:

答案 0 :(得分:4)

  

<强> -Wunused功能

     

声明静态函数但未定义静态函数或未使用非内联静态函数时发出警告。此警告由 -Wall 启用。

当声明(原型)函数但未定义函数时,从未使用函数时,此警告似乎会触发两者

你确定你没有错过实现你声明的任何功能吗?