UINT16_MAX aus <stdint.h> in cpp benutzen

Gast #4384687
Lesenswert?

Hallo Leute,

in meinen reinen C Projekten nutze ich immer die Definitionen aus der 
<stdint.h>:
uint8_t, uint16_t und uint32_t genauso wie
UINT16_MAX usw

Wenn ich den Quellcode copy&paste in ein cpp benutze, gibt es immer 
wieder Kompilierfehler, das UINT16_MAX nicht definiert ist.

Ich benutze Qt 5.5 mit dem Mingw Compiler.

Dort steht im <stdint.h>:
1
/* 7.18.2  Limits of specified-width integer types */
2
#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) ||  \
3
    defined(__GXX_EXPERIMENTAL_CXX0X__) || __cplusplus >= 201103L
4

5
/* 7.18.2.1  Limits of exact-width integer types */
6
#define INT8_MIN (-128)
7
#define INT16_MIN (-32768)
8
#define INT32_MIN (-2147483647 - 1)
9
#define INT64_MIN  (-9223372036854775

Also er würde die Macros kennen, wenn
- defined(__STDC_LIMIT_MACROS) gesetzt ist oder
- __cplusplus >= 201103L erfüllt ist.

Meine Frage:
- darf/soll ich ich über meine IDE im Buildprozess __STDC_LIMIT_MACROS 
setzen? Oder ist das eher für Compiler-interne Sachen?
- Was ist der bevorzugte Weg diese Sachen (INT16_MIN) zu benutzen?

(PS Ich weiss unter cpp gibt es noch die #include <limits>, aber ich 
wollte den reinen/unmodifizierten C Code benutzen.)

Danke für eure Hinweise.

Adib.
--

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren