web-dev-qa-db-ja.com

C ++プログラムでの#include <cmath>と#include <math.h>

C++プログラムに後者ではなく前者を含める場合の考慮事項は何ですか?常にmath.hstdlib.hおよび決してcmathcstdlibなど。後者が存在する理由が理解できません。誰かに教えてもらえますか?

11
Violet Giraffe

<c ...>ヘッダーを含めることをお勧めします。 C++標準ライブラリヘッダーです。 <... .h>ヘッダーは、C標準ライブラリによって定義されたヘッダーです。

C++標準ライブラリは、Cの標準ライブラリの機能も利用できるようにし、静的型の安全性を確保するために適切に調整されています。

C++ヘッダーは、ほとんどの場合、名前がすべてstd名前空間で定義されていることを除いて、対応するCライブラリヘッダーと同じ内容です。

条項18から30および付録Dに記載されている場合を除き、各ヘッダーcnameの内容は、C標準ライブラリ(1.2)またはC Unicode TRで指定されているように、対応するヘッダーname.hの内容と同じでなければなりません。必要に応じて、包含によるかのように。ただし、C++標準ライブラリでは、宣言(Cでマクロとして定義されている名前を除く)は、名前空間stdの名前空間スコープ(3.3.6)内にあります。これらの名前が最初にグローバル名前空間スコープ内で宣言され、次に明示的なusing宣言によって名前空間stdに注入されるかどうかは指定されていません

22