0

簡単なセットアップ: 関数のプロトタイプと関数の実装が n 個あります。関数ポインターの大きな配列が 1 つあります。各関数は、この配列にリストされています。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 関数の 1 つが、gcc でコンパイルするときに -Wunused-function 警告を引き起こすようになりました。他の人はしません。なんで?

4

1 に答える 1

8

-未使用機能

静的関数が宣言されているが定義されていない場合、または非インライン静的関数が使用されていない場合は常に警告します。この警告は-Wallによって有効になります。

この警告は、関数が使用されていない場合、関数が宣言 (プロトタイプ) されているが定義されていない場合の両方でトリガーされるようです。

宣言した関数の実装を見逃していませんか?

于 2013-02-02T14:01:30.853 に答える