回答:
プログラムに「デッドコード」を見つけることができるツールがいくつかあります。Stack Overflowスレッドについては、こことここでそれらについて読むことができます。短い要約:
gccコンパイラフラグ-Wunusedおよび-Wunreachable-codeを使用してから、lcovなどのツールを使用して未使用のメソッドを見つけます。
痕跡?どうして?コメントアウトして、コンパイラーを実行します。他の場所で参照されている関数をコメントアウトした場合、すぐにわかります。
未使用のコードを積極的に探している場合は、Jake223が提案するものを使用してください。
ただし、使用されていないように見えるコードに遭遇した場合は、コードベースでメソッドの名前を検索するだけで済みます。プライベートメソッドの場合、仕事は簡単です。現在のクラスのみを検索します。パブリックメソッドの場合は、すべてを検索します。クラス全体の場合は、すべてのコードでその名前を検索します。
当たりませんか?完璧です。コードを削除してテストを実行します。あなたにはテストがありますね?変更をドキュメントバージョンシステムにコミットするよりも。使ってみませんか?そうすれば、それが必要だと気づいた場合、変更を元に戻すことができます。
コードを削除することは、あなたが毎日やるべきことです。多分あなたはいくつかのコードをリファクタリングし、古いものを削除します。または、古い未使用のコードを見つけて削除します。バックアップがなくても、関数を1つまたは2つ書き換えるのはどれほど難しいですか。そして二回目は確かに以前よりも上手に書くでしょう。
あなたがトラブルを探していない限り(つまり、あなたは彼らが呼ばれるべきだと知っている)なぜわざわざ。それらが本当に呼び出されていない場合、それらはおそらくリンカによって削除され、どのような場合でも無駄なスペースは重要ではありません。一方、それらを削除して後で必要になった場合(おそらく一部のコンパイラー構成では気付かなかった)、それらをリカバリーするために行う作業が増えます。これは、除去と再検出が長時間離れている場合は特に困難です。
この目的でCppcheckを使用できます。
$ cppcheck --enable=unusedFunction .
Checking foo.c...
1/2 files checked 0% done
Checking main.c...
2/2 files checked 0% done
[foo.c:1]: (style) The function 'foo' is never used.