私はVisual StudioでC++プロジェクトを作成しますが、Cの関数とライブラリのみを使用すると、Cの速度が得られますか?もしそうでなければ、私はまだビジュアルスタジオを使うべきですか?私はC++としてコンパイルすればCはまだ高速ですか?
答えて
CはほぼC++のサブセットですが、Cの動作が異なる場合があります。あなたはこのこの記事についての詳細を見つけることができます:Where is C not a subset of C++?
それでも、C++としてコンパイルされたCコードは、あなたがg++ -S source.c
とgcc -S source.c
で生成されたアセンブリコードを見てみることができますCと同じまたはほぼ同じになり、これら二つの結果を比較します。 cppファイルでgccを実行すると、実際にはC++コンパイラが使用されることを忘れないでください!私はちょうど簡単なコードでそれを試してみた
(だから、一つのファイルtest.cの2つ目だけという名前のシンボリックリンクTEST.CPP作る):
#include <stdio.h>
int main(int argc, char ** argv) {
printf("Argc: %d, argv[0]: %s\n", argv[0]);
return 5;
}
をそしてコンパイルされたコードは、100%同じです。それはもちろん、より複雑な例では異なるかもしれません。
'g ++'は '.c'拡張子のファイルに対してCコンパイラを呼び出しませんか? –
@カミル:...そしてその逆。はい、あなたは正しいです。あなたが答えた時にそれを追加していました。 –
合理的な生産的なプログラムは、どちらの言語でも異なる意味を持ちます。同一のシンタックスは、同一のセマンティクスを意味するものではありません。 Cを「ほぼC++のサブセット」と考えると、悪い記述よりも悪いです。 – Olaf
私がC++としてコンパイルすると、Cはまだ高速ですか?
これは速くても遅くてもかまいませんが、おそらく同じです。それがまったくコンパイルされていると仮定します。言語の変更がプログラムの意味を変えないと仮定します。
速度よりもはるかに大きな問題は、動作が変更される可能性です。 Cで動作を定義したものの中には、C++での動作が未定義のものがあります。私はCプロジェクトが
高速に実行するために得ることができる方法
Cコンパイラを使用してください、そしてプロジェクトが早く、それがあったようとどまるだろう、と誤って実行時に内破しません。
C++コンパイラを使用する必要がある場合は、プロジェクトをC++に変換します。
- 1. 私のopenglフリーglutアプリケーションはCとしてコンパイルされますが、C++ではコンパイルされません。
- 2. 高速CまたはObjective-C数学パーサーとは何ですか?
- 3. C#高速ピクセルレンダリング
- 4. スタティックローカルvsローカル。どちらがCまたはC++で高速ですか?
- 5. 高速かつエレガントな方法は、C#
- 6. C++ VectorはC配列(Time)より高速です。どうして ?
- 7. 私はそれをコンパイルすれば速く表現できますか?
- 8. C++のペアインデックスを使用してマップを高速化するにはどうすればよいですか?
- 9. Cこのブランチレスハックは実際には高速ですか?
- 10. OpenCv C++ g ++ MakeFileを高速にコンパイルするため
- 11. C++コードをコンパイルしてCコードとリンクするにはどうすればよいですか?
- 12. C++の高速メディアフィルタ
- 13. C#XNA高速ピクセルロード
- 14. C++での高速バッファリング
- 15. Cで高速プロデューサ/スローコンシューマ
- 16. Javaは、バブルソートでC#よりも実際に高速ですか?
- 17. 私が探してる私は、C#/。NET技術を用いた高速マーチングアルゴリズムをコード化しようとしている旧C++/STLプログラマだ
- 18. はCでヘッダファイルをコンパイルしてコンパイルします
- 19. C#の方が高速です - System.Convert.ToString(objThatIsString)または(string)objThatIsString?
- 20. Oracleストアドプロシージャは、TOADで高速にC#に遅くなります。
- 21. JavascriptはC++よりも4倍高速ですか?
- 22. Math.abs(a-b) - Math.abs(c-d)の実装は高速ですか?
- 23. テンプレートのメタプログラミングは同等のCコードより高速ですか?
- 24. コード実行時にC++がC++より高速なのはなぜですか?
- 25. C/C++で高速ガウスフィッティングを行う方法は?
- 26. JavaがC++よりも高速な場合(またはJITが高速でプリコンパイルされている場合)
- 27. なぜこのコードでC++がCよりもずっと高速ですか?
- 28. Windows/CでRedisを高速化する#
- 29. Cでは、より高速です:返り値であれば、そうでなければ返値で?
- 30. C/C++言語では... forループはWhileループとして内部的にコンパイルされますか?
はい、同じ速度 –
C++はCのように見えますが、別の言語であり、Cコードのコンパイルに失敗することがあります。 – rustyx
2つの異なるコンパイラを使用してコンパイルすると、速度が速くなるか遅くなる可能性があります。 –