アプリ版:「スタンプのみでお礼する」機能のリリースについて

C言語のソースコードを解析、評価しています。
コードがコメント(//や/* */)および#ifdefを多用しており
有効なコードが埋もれて見遠しが悪くなっています。

地道に草むしりのように無効な文を削除していますが、
簡単に処理するソフトは無いものでしょうか。

// 必要なコメント(説明文)のため削除したくない
/* */ ばっさり削除
define無効な#ifdef ばっさり削除

A 回答 (5件)

>#3さん



プリプロセッサ処理は、私も一瞬思いついたのですが、
・マクロが全て展開される
→ defineで名前を付けた定数も、全てマジックナンバー直書き状態になる
・#includeしたファイルも展開される
→ プロトタイプや構造体等の宣言がずらーっと並ぶことになる
と、今回の目的からは逆効果になると思います。

既存の静的解析ツールを使うとか、Perl等で自作するか、になると思います。
また、Syntax Color に対応したエディタで、色を工夫する、というのもいいかと。

> // 必要なコメント(説明文)のため削除したくない
> /* */ ばっさり削除

この使い分け規則は徹底できているのでしょうか。
/* */ に説明があったら、手動でやる必要があります。
    • good
    • 0

茶々を入れるようですが、


> C言語のソースコードを解析、評価しています。
は、どういう基準で解析、評価をしているのか疑問です。

ソースコードの評価ってのは、行数、コメント率、複雑さ、などで定量的に計測できるものでり、ツール(QAC)などで測定するものです。

> 有効なコードが埋もれて見遠しが悪くなっています。
ということは人間が解析するということであり、解析者の主観が入り、客観的な評価が得られません。
最終的にやりたいことは、解析、評価ではないのはないでしょうか?(リバースエンジニアリング?)
リバースエンジニアリングなら、いくつかツールがあります。
最終的にやりたいことを明確にして、そのためのツールを探す方が効果的な場合もあると思いますよ。

コメントの削除ルールからすると、何らかのコーディング規則があると思われますが、それを徹底することがコードの見遠しをよくするための方法の一つではないでしょうか。
すでに作成されているコードについては何らかの方法でソースコードを整理する必要があるでしょうけど。
    • good
    • 0

ほとんどのコンパイラで、ソースコードをプリプロセスした結果(コメント除去、マクロ展開など)を出力することができるはずです。



g++(gcc)や、cl(VisualC++)なら、-E というオプションで出力できます。
    • good
    • 0

まじめに探せばたぶん見つかるでしょうが、ざっと見たところだとこれくらいでしょうか。



http://download.goo.ne.jp/software/contents/soft …

こちらは自力で何とかしろという案ですが、テキスト処理に強いスクリプト言語(perl,ruby,awkなど)で作ってしまえという作戦です。以下はawkで実装した、使われていない#ifdefを除外するというスクリプトの例です。こういう感じで/* */コメントも除去すればいいかと。#ifdefよりも考える条件がない分、簡単です。

http://awkerqaz.blogspot.jp/2013/10/c-ifdef-awk- …
    • good
    • 0

>簡単に処理するソフトは無いものでしょうか。


思い切り自分に都合がいい希望(汎用性がない)なので
フリーソフトを無いとおもわれます

正直な話ソースが評価・解析できる人なら
自分で自作したほうが早いんではないですか   みたいな
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!