2010-12-08 11 views
2

私が最近取り組んでいるプロジェクトは、すべての最も厳しいGCCの警告を有効にし、コンパイルするまで反復することによって、コードをクリーンアップするための大きな努力をしました。例えば、変数を宣言して使用しないと、コンパイルが失敗します。ヘッダファイルを不必要にインクルードするとGCCに失敗することはありますか?

私の最新の開発作業の後、私はそこにヘッダファイルが含まれていることがわかりましたが、これは現在不要です。ヘッダーファイルを削除しようとする以外の他のそのようなヘッダーファイルを(そしてそのような方法で依存性を減らす)見つけることができます。

LinuxでGCC 4.3.2を使用しています。

+0

"変数を宣言して使用しないとコンパイルが失敗します"。どのコンパイラオプションを設定しましたか?それは役に立つと思うが、ああそう厳しい;-) – Mawg

答えて

3

いいえ、ヘッダーが必要ない場合、gccが失敗することはありません。インクルードされたヘッダーにはかなりのものが含まれている可能性があります。

int some_function(int x) { 
#include "function_body.h" 
return x; 
} 

それは確かに良い形ではありませんが、あなたはインクルードには、削除された場合、それはまだコンパイルします:以下のやや病的な場合を想像してみてください。したがって、関数チェッカーが実際に存在するときに動作が異なるとはいえ、自動チェッカーは「不要」と宣言することがあります。

+0

あなた、先生、歪んだとねじれた心があります。私はそれが好きです:-) – Mawg

関連する問題