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

简单设置:有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警告。 其他人没有。 为什么?

-Wunusedfunction

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

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

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