4

1990 年代から C で書かれた古いプログラムがあります。次の人や最新のコンパイラで動作するように更新したいと思います。現在、私は本当に古いバージョンの TurboC を使用して変更を加えています。これを最新の C または C++ で書き直すことに集中する必要がありますか? あまり書き直さなくても、既存のコードのほとんどを再利用できるように、このコードを最新の状態にするのに最も簡単なのはどれですか?

私のプログラミングのバックグラウンドは、ほとんどが Perl、Python、PHP、Powershell、Visual Basic などの hprogramming 言語であったため、C と C++ の違いについてはあまり詳しくありません。

4

5 に答える 5

5

CとC++は異なる言語であり、同じ言語の異なるバージョンではありません。Cに固執しますが、C99などの新しいバージョンの標準の優れた機能を使用することもできます。

于 2012-06-20T16:28:43.313 に答える
5

あなたの最後の文はほとんどあなたの感情に答えます。違いに精通しておらず、古い言語しか知らない場合は、多くのユーザーに影響を与えるようなひどい問題がない限り、このプログラムを更新しません。

新しいコンパイラを使用している場合は、Cの世界でC99またはC11に準拠するように更新できます。

于 2012-06-20T16:29:34.200 に答える
3

与えられた:

1990 年代から C で書かれた古いプログラムがあります。

2 つの質問があります。

これを現代のCで書き直すことに集中する必要がありますか? 多分そうでないかもしれません。標準の C89、C99、または C11 に準拠しようとします。これは主に、使用するツールと、新しい開発がどの程度発生するかによって異なります。

スコープの先頭以外で変数を宣言するのは好きですか? その場合は、C99 に更新してください。本当に C89 に似ていて、C99 規則でエラーや警告を表示するツールを使用していますか? もしそうなら、C89に固執してください。

プログラムが継続的に更新されており、若い人を採用している場合は、新しい大会が有益かもしれません.

これを C++ で書き直すことに集中する必要がありますか? いいえ。

于 2012-06-20T16:42:29.567 に答える
3

適切に作成された C プログラムのほとんどは、有効な C++ プログラムでもあります。または、わずかな変更が必要です。その逆は正しくありません。

ANSI/ISO C に固執し、次のメンテナのために両方のドアを開いたままにしておく方がおそらく簡単です。

于 2012-06-20T16:43:01.677 に答える
2

最新の C コンパイラと最新の C++ コンパイラに移行するのは、おそらくほぼ同じ努力です。C と C++ の進化は分岐しており、それぞれが同様の機能を持っていますが、ソース互換性はありません。

C++ に更新することを選択するように導くいくつかの要因があります。

  • 現代の C は、C++ ほどサポートされていないようです。たとえば、C の多くの新しい機能は、特に Microsoft の世界では、C++ で必要な場合にのみ実装されるようです。VS は、C11 は言うまでもなく、C++ のものを除いて、C99 もサポートしていません。

  • C++ はより優れた Cです : 「C++ は、C を使用して行われるプログラミング スタイルをサポートし、より優れた型チェックとより多くの表記サポートを (効率を損なうことなく) サポートするという意味で、"より優れた C" です。」これは、C の最新バージョンにも当てはまります。

  • C++ は、いくつかの非常に強力な手法をサポートする機能を追加します。それらを実際に使用するのはライブラリ開発者に任せるのが最善かもしれませんが、それは C++ が本当に優れたライブラリをサポートできることを意味します。

于 2012-06-20T16:47:51.050 に答える