• ベストアンサー

C++で書いたソースをCになおす方法

VISUALC++のWIN32で現在C++を使ってソースを書いて 動かせるのですが このソースをC言語になおして 同じように動かしたいと思っています 何かいい方法ありますか? 直しかたなどあれば教えてください

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

  • ベストアンサー
  • Interest
  • ベストアンサー率31% (207/659)
回答No.1

> VISUALC++のWIN32で現在C++を使ってソースを書いて動かせるのですが MFCは使っていないということでいいですよね? 現在「クラス」を使っていますか? C++固有の機能は使っていますか?(例:STL, テンプレート,etc) > このソースをC言語になおして同じように動かしたいと思っています どういう目的でC言語に直したいと思ったのですか? 極端な話、現行の処理をC言語の関数でラッピングするのは反則?

その他の回答 (4)

  • hisappy
  • ベストアンサー率46% (184/392)
回答No.5

エラーメッセージとちゃんと会話できる人ならではの手段ですが Cのコンパイラを通して、 エラーになった部分を修正していく ってのも一つの手です。

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.4

C に直す必然性がよくわからないんですが. template とか例外とかを使ってなければ cfront でなんとかなるかも....

  • jacta
  • ベストアンサー率26% (845/3158)
回答No.3

比較的簡単に試してみることができるのは、Lightweight C++でしょうか。 対応しているC++の文法は標準C++でもなければ、VC++のそれでもありませんが、テンプレートや例外処理を使っていなければ、少しの修正で何とかなる可能性はあります。 もう一点問題があるのは、出力されるC言語のコードは、実質的にGCC用だということです。これは、VC++の代わりにMinGWでも使えば何とかなるでしょう。もしかすると、CIL(http://manju.cs.berkeley.edu/cil/)にかければ多少ましになるかも知れませんが、試したことはありません。 参考URLを見ればわかるように、ものすごいソースが吐き出されますが、GNU indentなどで整形してやれば、多少は見やすくなるはずです。 まあ、いずれにしても細部の動作に関しては何ともいえないので、動作検証は完全にやり直しになるはずです。

参考URL:
http://students.ceid.upatras.gr/~sxanth/lwc/
  • marori3
  • ベストアンサー率25% (23/91)
回答No.2

理論上はC++のソースはCへ直すことが出来ますが(元々トランスレータとして設計されたため) しかしC++からCへの変換するソフトというのは聞いたことがありませんし、 あったとしても相当なまでに「汚い」ソースになるでしょう。 VisualC++でのソースがどの程度の規模かは知りませんが、 手作業で、ソースからではなくアルゴリズムからCに書き直したほうがよいと思います。

関連するQ&A