1. ホーム
  2. c++

[解決済み] なぜC++よりCを使う人がいるのか?[クローズド]

2022-05-04 05:01:54

質問

が好きな人が多いようですが 文句を言う C++については、なぜC++ではなくCを選びたいのか、その根拠をあまり見つけることができません。Cはそれほど非難されていないようですし、C++に問題があるのなら、なぜCのサブセットに限定しないのでしょうか?あなたの考えや経験を教えてください。

解決方法は?

Joelの回答は、あなたが考えるような理由で良いものです。 ある を使用することです。他にもいくつかありますが。

  • 業界のガイドラインを満たす必要があり、C言語の方が証明やテストがしやすい
  • Cを扱うツールはあるが、C++はない(コンパイラだけでなく、すべてのサポートツール、カバレッジ、解析などを考えてみてください)
  • ターゲットとなる開発者はC言語の達人である
  • ドライバ、カーネル、その他の低レベルのコードを書いている場合
  • C++コンパイラは、あなたが書く必要のある種類のコードを最適化するのが得意でないことを知っています。
  • あなたのアプリはオブジェクト指向に適していないだけでなく、オブジェクト指向で書くのは難しいでしょう。

しかし、場合によっては 欲しい は、C++ではなくC言語を使用します。

  • アセンブラでコーディングする手間を省き、アセンブラのパフォーマンスを得たい(C++は理論的には「完璧な」パフォーマンスが可能だが、コンパイラは優秀なCプログラマーが見るような最適化には適していない)。

  • 小さなCコンパイラを取り出し、数行のコードを書き、コンパイルすれば完了です。ヘルパー付きの巨大なエディタを開く必要も、実質的に空で役に立たないクラスを書く必要も、名前空間を扱う必要もありません。 C++コンパイラーを使っても、Cのサブセットを使うだけでほとんど同じことができますが、C++コンパイラーは、たとえ小さなプログラムであっても動作が遅くなります。

  • 非常に高いパフォーマンスや小さなコードサイズが必要で、C++コンパイラはライブラリのサイズとパフォーマンスのために、実際にはそれを達成するのを難しくすることがわかっています。

Cのサブセットを使ってC++コンパイラでコンパイルすればいいという主張ですが、そうするとコンパイラによって微妙に違う結果が出ることがわかりますね。

もしそうなら、あなたは言語の違いを理解していないか、コンパイラの理論を理解していないかのどちらかです。