[解決済み] なぜ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++コンパイラでコンパイルすればいいという主張ですが、そうするとコンパイラによって微妙に違う結果が出ることがわかりますね。
もしそうなら、あなたは言語の違いを理解していないか、コンパイラの理論を理解していないかのどちらかです。
関連
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] using namespace std;」はなぜバッドプラクティスだと言われるのですか?
-
[解決済み] 要素ごとの加算は、結合ループよりも分離ループの方がはるかに高速なのはなぜですか?
-
[解決済み] なぜテンプレートはヘッダーファイルでしか実装できないのですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み】画像処理。コカ・コーラ缶」認識のためのアルゴリズム改良
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】C++ 式はポインタからオブジェクトへの型を持っている必要があります。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません
-
[解決済み] 警告:暗黙の定数変換でのオーバーフロー
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない