是什么导致编译器警告未使用的功能?

mus*_*tze 0 c arrays prototype function-pointers gcc-warning

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

码:

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

/* and their implementations */

void (*functions[])(void) = { foo1, foo2, bar1, bar2 };
Run Code Online (Sandbox Code Playgroud)

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

Geo*_*lea 5

-无用功能

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

这一警告似乎触发这两个时从未使用过的功能,并在声明函数(原型),但没有定义。

您确定不会错过实现所声明的任何功能的问题吗?