fileppを使用してLinux上のC言語ソースファイルからコメントを削除する方法

このQ&Aのポイント
  • Linuxで開発している場合、fileppを使用してC言語のソースファイルからコメントだけを削除する方法を知りたいと思っています。
  • 現在、fileppを使用してコメントだけを削除しようとしていますが、#ifdef〜#endifも削除されてしまいます。正しい修正方法を教えていただけませんか?
  • コメントだけを削除できる別のツールやコマンドがあれば、それも教えていただけると助かります。
回答を見る
  • ベストアンサー

filepp でコメントだけを削除したい(linux)

 linux で開発しています。  filepp を使って C 言語のソースファイル(.c, .h)からコメントだけを削除したいのですが、   filepp -m c-comment.pm in_file.c > out_file.c だと、#ifdef ~ #endif も削除されてしまいます。  c-comment.pm を追いかけてみたのですが、知識が乏しく、正しい修正にはいたりませんでした。  対処方法を教えてください。  また、コメントだけを削除できれば filepp にはこだわりませんので、linux(FedoraCore5)上で動作するツールやコマンドをご存知なら教えてくください。

質問者が選んだベストアンサー

  • ベストアンサー
  • yes0yes
  • ベストアンサー率100% (1/1)
回答No.2

filepp -m c-comment.pm in_file.c > out_file.c を filepp -k -m c-comment.pm in_file.c | uniq > out_file.c にしていかがでしょうか? -k を追加することで、ほぼ期待に沿える動作をするかとおもいます。

参考URL:
http://www.cabaret.demon.co.uk/filepp/filepp.html
toshi531
質問者

お礼

 回答ありがとうございます。  参考にさせていただきます。

その他の回答 (1)

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

関連するQ&A

  • #ifdef _DEBUGが効かない

    こんにちは。 Win2000、VC++6.0使用。 今までC言語でプログラムを組んではいましたが、 #define _DEBUG #ifdef _DEBUG print(...); #endif というようにデバッグ用のコードを入れたことはありませんでした。 このような便利なものがあると知り、早速使ってみたのですが、 #define _DEBUG の一文をコメントアウトして、再コンパイル(リビルド) して実行してみたのですが、 普通に #ifdef _DEBUG #endif で囲まれた部分が実行されてしまいます。 #define _DEBUG を宣言しなければ、実行されないと思っていたのですが 自分の勘違いでしょうか? よくわかりません。 どなたかご存知の方、よろしくお願いします。

  • コンパイル時のスイッチについて

    C言語初心者なので申し訳ありませんが,コンパイル時のスイッチについて困っております. 現在, #define tmp ... #ifdef tmp  関数1 #else  関数2 #endif とtmpを定義して切り替えようとしております. 現在コンパイルの切替は,毎回 //#define tmp とコメントアウトして切り替えているのですが, gcc等のコンパイラのコマンドラインから 切り替える方法はあるのでしょうか. 色々調べたら, cc -D tmp みたいな?感じにするのかと思ったのですがうまくいきません. 初歩の質問ですがご教授よろしくお願いします.

  • スクリプト言語 Linuxについて

    Linuxコマンドについて教えてください。スクリプト言語・ Python をはじめたいと思っているのですが、それにLinuxコマンドは必要なのでしょうか?Pyhtonは他のC言語との関連性はどうでしょうか?

  • texでエディタを選ばない一括コメントアウトの仕方はある?

    texをWindowsやLinuxやSolarisで使っております。 複数行を一気にコメントアウトする方法(C言語での/**/のような)はあるのでしょうか? 各作業先でのOSで秀丸やノートパッドやEmacsやviやkeditやgeditとかのエディタを使わねばならないのです。 特定のエディタでならCtrlキーを使って、%を一気に行頭挿入する方法は見つけたのですが、、、 C言語のように便利な/**/コマンドはないのでしょうか?

  • 開発におすすめなLinuxを教えてください

    最近Linuxに興味を持ち始め、Linuxを使ってのソフト開発をしてみたいと思うようになりました。 しかし今までLinuxに全く手を付けたことがなくて、数あるディストリビューションのどれを選んだらいいのか悩んでいます。 開発がしやすいという観点でのおすすめのLinuxを教えてください。 ちなみにC言語での開発を考えています。

  • プログラムの評価に関して

    C言語のソースコードを解析、評価しています。 コードがコメント(//や/* */)および#ifdefを多用しており 有効なコードが埋もれて見遠しが悪くなっています。 地道に草むしりのように無効な文を削除していますが、 簡単に処理するソフトは無いものでしょうか。 // 必要なコメント(説明文)のため削除したくない /* */ ばっさり削除 define無効な#ifdef ばっさり削除

  • コメントの入れ子を何とか実現できないでしょうか?

    コメントアウトの入れ子を、何とか実現できないかを伺っても宜しいでしょうか? XML仕様で<!-- -->の入れ子は許されない為、代替案を探しています。 代替案とは、例えばC/C++の #if 0 ~ #endif 等に相当する物です。 どうか宜しくお願い致します。

    • ベストアンサー
    • XML
  • Linuxって、、、、、、

    私は現在リナックスを使っているのですが、、、、、 親にリナックスって何?って聞かれると上手く答えられません、 自分自信一体なんのかよくわかってません、 C言語のできるOS?違う、そんなのWindowsでもできる、。 サーバ構築?違う、これもWindowsでもできる、 システム開発用のOS?これもやっぱ違うと思う、他のOSでも できるような気がする、 私が知っているのは、オープンソースとかいうくらい、 自分でいろいろなんか変えられるとか、、、、、 あと友達は「Linuxはカーネルだ!」といっていました、 カーネルは知っているのですが、意味がよくわかりませんでした。 お願いします、Linuxとは一体なんなのですか?

  • Javaでのデバッグコード削除

    Javaで条件分岐などによってコード自体を削除することはできるのでしょうか。 目的はデバッグコードの負荷軽減です。 C言語でいうところの、プリプロセッサのようなことができることが理想です。 例えば、メソッド中に以下のようなコードがあるとします。 ------------------------------------ final boolean DEBUG = true; if (DEBUG) System.out.println("Debug: hogehoge"); ------------------------------------ 上の場合はif文条件分岐の処理負荷が発生すると思います。 この程度であれば低負荷であることは認識していますが、どうも気持ちが悪いです。 例えば、C言語であれば以下のようにしてコンパイル時にコードごと削除することができると思います。 ------------------------------------- #define DEBUG int main(){ #ifdef DEBUG    printf("Debug: hogehoge"); #endif return 0; } ------------------------------------- Javaで上記のようなことを実現することは可能でしょうか。 デバッグコードの削除が目的ですので、仮にこれができなかったとしてもIDEやそのプラグインなどで目的が達せられれば問題ありません。 どなたか解決策をご存知であればご教示願います。

  • linuxを導入したい

    C言語の勉強 会社で使っているunix(ソラリス)のコマンド類の勉強を考えlinuxを自宅のPCで導入したいと思っています。 linuxで特にWebを見たりメールをしたりする予定はありません。 freeでWebからlinuxをダウンロードできるのでしょうか? また、インストール方法は簡単でしょうか?

専門家に質問してみよう