PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Benutzen von INT16_MAX in C++ Code



schmiereck
09.01.2010, 02:06
Hallo,

ich will das INT16_MAX Makro aus "stdint.h" in einem C++ Programm benutzen.Aber selbst wenn ich davor


extern "C"
{
// Because of using INT16_MAX, ...
#define __STDC_LIMIT_MACROS 1
#include <stdint.h>
}

schreibe funktioniert das nicht (undefined).

Kann mir jemand sagen, wie ich das Makro auch in C++ verwenden kann, oder was eine C++ konforme Methode wäre, um den maximalen Wert zu ermitteln?

Many thx,
smk

Besserwessi
09.01.2010, 11:19
Der Wert für INT16_MAX sollte unabhänging von Compiler/CPU sein, denn bei Typen wie INT16 ist ja explizit die größe vorgegeben.

schmiereck
10.01.2010, 21:02
Hallo,

wie groß der Datentyp "weiss" ich schon, aber um es der Anwendung mitzuteilen würde ich gerne die definierten Konstanten verwenden.

Mein Fehler war, das define vor das include der stdint.h zusetzen, er muss aber als erste Anweisung vor alle anderen gesetzt werden, genauer gesagt vor andere includes die diese ebenfalls includen (wegen der Verriegelung von Mehrfach-Includes).

Wenn ich #define __STDC_LIMIT_MACROS 1 VOR ALLE ANDEREN includes setzen funktioniert es.

Aber vielen dank für den Hinweiss,
Gruß,
smk