Bereich über numerische Datentypen in C ++

Es mag seltsam erscheinen, aber die C ++ Standard nicht genau sagen, wie groß eine Zahl jeder der Datentypen aufnehmen kann. Der Standard spricht nur auf die relative Größe jedes Datentyp. Zum Beispiel heißt es, dass die maximale long int so groß wie die maximale mindestens Int.

Die Autoren von C ++ versuchten nicht, mysteriös zu sein. Sie wollten lediglich den Compiler zu ermöglichen, die absolut schnellste Code möglich, dass die Basismaschine zu implementieren. Der Standard wurde entwickelt, für alle verschiedenen Arten von Prozessoren mit unterschiedlichen Betriebssystemen zu arbeiten.

Es ist jedoch sinnvoll, die Grenzen für die jeweilige Umsetzung kennen. Die Tabelle zeigt die Größe der einzelnen Nummerntyp auf einem Windows-PC den Code :: Blocks / gcc-Compiler.

Bereich über numerische Datentypen in Code :: Block / gcc
VariableGröße (Byte)GenauigkeitAngebot
kurz2genau-32.768-32.767
int4genau2147483648 bis 2147483647
lange4genau-2147483648 bis 2147483647
long long int8genau-9.223.372.036.854.775.808 zu 9.223.372.036.854.775.807
schweben47 Stellen± 3.4028 x 10 ±38
lange816 Stellen± 1.7977 x 10 ±308
long double1219 Stellen± 1.1897 x 10 ±4932

Der Versuch, eine Zahl zu berechnen, die über den Bereich seiner Art ist als ein bekannter Überlauf. Die C ++ Standard lässt im Allgemeinen die Ergebnisse eines Überlauf als undefiniert. Das ist eine andere Art und Weise, dass die definers von C ++ flexibel geblieben.

Auf dem PC ein Gleitkommaüberlauf führt zu einer Ausnahme, die, wenn nicht behandelt wird Ihr Programm zum Absturz bringen. So schlecht, wie das klingt, ist ein Integer-Überlauf schlimmer - C ++ erzeugt leise einen falschen Wert ohne Beanstandung.

Menü