1

私が( Cで)取り組んでいるプロジェクトには、プリプロセッサディレクティブを使用して、コンパイル時の構成に基づいて含めたり省略したりできるコードのセクションがたくさんあります。

コアプロジェクトにさまざまな構成で追加または削除されるコードの行数を見積もることに興味があります。言い換えれば、どこかに数行#define#undef行を書いて、それがLOCカウントにどのように影響するかを理解したいと思います。

私はLOCカウンターに精通していませんが、大まかな検索からは、簡単に利用できるツールのほとんどがそれを行っているようには見えません。これは難しい問題ではないと思いますが、測定するのはかなり珍しい指標です。

私が探していることを実行する既存のツール、またはそれを自分で実行する簡単な方法はありますか?コメントや空白行を除外することも、非常に便利です。

4

2 に答える 2

7

プリプロセッサを介して実行します。たとえば、gccの下で、オプションを使用して、-E必要と思われる種類の出力を取得すると思います。

  -E  Stop after the preprocessing stage; do not run the compiler proper.
      The output is in the form of preprocessed source code, which is sent
      to the standard output.
于 2011-04-28T07:18:04.563 に答える
0

コンパイラからプリプロセッサ出力を取得することもできますが、これには、複雑な複数行マクロの展開や、予期しない方法でのLOCカウントの追加など、他の望ましくない副作用が発生する可能性があります。

独自の単純なプリプロセッサを作成し、独自のinclude /excludeディレクティブを使用してみませんか?それらを簡単に解析できるようにしてから、コードをこのプリプロセッサにパイプしてから、CLOCなどのフル機能のLOCカウンターに送信できます。

于 2011-04-28T07:24:12.487 に答える