C++ und stdint.h

Gast #3371371
Lesenswert?
• ▲
▼
Hallo zusammen,

ich benutze in meinem C++ Programm die C99 Datentypen und würde auch 
gerne die Limitsbenutzen.
Jetzt sind diese allerdings ausgeblendet:

in stdint-ggc.h:
1
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
2

3
/* 7.18.2 Limits of specified-width integer types */
4

5
#ifdef __INT8_MAX__
6
# undef INT8_MAX
7
...

Wie bekomme ich denn in C++ die Limits?
Gast #3371402
Lesenswert?
• ▲
▼
In C++ (C++11) müsste das nicht <stdint.h> sondern <cstdint> sein. Um 
deine Makros zu bekommen, musst du vorher __STDC_LIMIT_MACROS 
definieren. Steht sogar eine Zeile drüber :-)
1
/* The ISO C99 standard specifies that in C++ implementations these
2
   macros should only be defined if explicitly requested.  */
3
#if !defined __cplusplus || defined __STDC_LIMIT_MACROS
Gast #3372097
Lesenswert?
• ▲
▼
In C++ funktionieren die Limits anders:
1
#include <limits>
2

3
int main () {
4
  std::cout << std::numeric_limits<int>::max () << ", " << std::numeric_limits<double>::min ();
5
}
Das ist so viel eleganter denn so kann der Typ zB ein Template-Parameter 
oder ein typedef sein und man kann dennoch die dazu passenden Limits 
abfragen (im Gegensatz zu den Limit-Makros).

Und seit C++11 wurde <stdint.h> in <cstdint> umbenannt, ja.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.