私のビルドシステムのMacOS 10.6.3のインターフェースはmath.hですが、ターゲットシステムではインターフェースファイルの名前はcmath.hです。学校ではcmathを使用しています。私は自分のプロジェクトが手渡されたときにコンパイルするようにしたいと思います。学校のサーバーやワークステーションは、Windows XPを実行しているx86です。 GCCは両方のプラットフォームで利用できます。数学インターフェースとC++のcMath
答えて
C++標準では、数学ライブラリ関数は、2つのヘッダで定義されています。
<math.h>
がグローバルでそれらが含まれていながら、
<cmath>
は、名前空間std
(例えばstd::sin
)でそれらが含まれています名前空間(だからちょうどsin
)。そのような
namespace std {
double sin(double);
float sin(float);
long double sin(long double);
}
よう
<math.h>
は等
double sin(double);
float sinf(float);
long double sinl(long double);
などの異なるタイプの異なる名前を持つすべてのC数学関数を含むが、<cmath>
が過負荷含ま機能:
両者の更なる違いがあります
など(C++ライブラリはsinf
を<cmath>
からさらにエクスポートするかもしれませんが、移植可能なプログラムでこれに頼ることはできません)
最後に、C標準ライブラリのfabs
,fabsf
およびfabsl
ファンクションは、<cmath>
のstd::abs
のオーバーロードになっています。
両方のヘッダが標準であるが<math.h>
が先行標準C++とCとの下位互換性
ため<cmath.h>
のようなものは、標準C++ではありません唯一の存在であるとして、あなたは本当に、<cmath>
を好む必要があります。
OK。私の答えは編集するのではなく、削除しました。私は
@HarperShelby:それを最後の近くに入れてください。私はOPがこれを遠くまで読んでくれることを願っています。これはかなりのリストなのですから) –
目標は、そこに良い情報を得ることです。あなたは馬を水などに導くことができます。 –
- 1. 特定のバージョンのPythonの数学とCMathモジュールの検索
- 2. C++でのGCD関数sans cmathライブラリ
- 3. 関数のオーバーロード時のオーバーロード時のエラーcmath関数C++
- 4. 既存のC++コードとフレックスとのインターフェース
- 5. cmath asin()の問題
- 6. 数学関数C#ユニティ
- 7. C数学SQRTとgcc -lmオプション
- 8. c#汎用インターフェースのキャスト
- 9. C++の数学関数の問題
- 10. cmath内部の内装
- 11. Cの数学定数PI値
- 12. C#虚数数学の問題
- 13. C++数学/六角質問
- 14. Cを学ぶことなくObjective-cを学ぶC
- 15. ウェブカメラとのインターフェース
- 16. C++テンプレート化されたインターフェース
- 17. リレーショナルデータベースと数学?
- 18. C++ポインタの数学の苦闘
- 19. 物理定数と数学定数のライブラリと基本変換をC#.net
- 20. アンドロイド用のネイティブC++ 3d数学/ジオメトリライブラリ?
- 21. C数学の割り当て
- 22. ラズベリーとのインターフェースpgpio
- 23. c#での汎用インターフェースの実装
- 24. C番号:インターフェース:2つのインターフェイス
- 25. javaとvoipとのインターフェース
- 26. zlibとActiveTcl 8.5とのインターフェース?
- 27. ラズベリーパイとウィンドウとのインターフェースPC
- 28. Cで二重切り捨てと数学の問題
- 29. MatplotlibとNumpyの数学
- 30. アセンブリメモリの数学とループ
"ターゲットシステム"とは何ですか?どのコンパイラ、どのオペレーティングシステム?教師に 'cmath.h'と' math.h'の違いを教えてください。それは ''または ''ですか? –
申し訳ありませんが、私のホストシステムはmacos、Windows XPはターゲットシステムです。私の教授が答えを知っていれば、ここで質問する必要はありません。 – awiebe