#include cmath vs #include math.h in einem C ++ - Programm [duplizieren]

7

Was sind die Erwägungen für die Einbeziehung der ersteren statt der letzteren in ein C ++ - Programm? Ich schließe immer math.h , stdlib.h und niemals cmath , cstdlib usw. ein. Ich verstehe den Grund nicht, warum die letzteren überhaupt existieren. Könnte jemand bitte mich aufklären?

    
Violet Giraffe 27.03.2013, 10:18
quelle

1 Antwort

19

Verwenden Sie vorzugsweise die Header <c ...> . Sie sind C ++ Standard Bibliothek Header. Die Header <... .h> sind Header, die von der C-Standardbibliothek definiert sind:

  

Die C ++ - Standardbibliothek stellt auch die Einrichtungen der C-Standardbibliothek zur Verfügung, die geeignet angepasst sind, um die Sicherheit des statischen Typs zu gewährleisten.

Die C ++ - Header haben größtenteils den Inhalt, der mit den entsprechenden C-Bibliotheksköpfen identisch ist, außer dass die Namen alle im std -Namespace definiert sind.

  

Außer wie in den Abschnitten 18 bis 30 und in Anhang D angegeben, muss der Inhalt jedes Headers cname mit dem des entsprechenden Headers name.h identisch sein, wie in der C-Standardbibliothek (1.2) oder C angegeben Unicode TR, gegebenenfalls, als ob durch Aufnahme. In der C ++ - Standardbibliothek befinden sich die Deklarationen (mit Ausnahme von Namen, die in C als Makros definiert sind) jedoch innerhalb des Namensraumbereichs (3.3.6) des Namespace std. Es ist nicht angegeben, ob diese Namen zuerst im globalen Namespace-Bereich deklariert werden und dann durch explizite using-Deklarationen in den Namespace std eingefügt werden.

    
Joseph Mansfield 27.03.2013, 10:19
quelle