Gibt es eine portable Art und Weise zu definieren, INT_MAX?

Fand ich folgende Definitionen in der /usr/include/limits.h:

# define INT_MIN (-INT_MAX - 1)

# define INT_MAX 2147483647

Auch, es scheint, dass alle XXX_MAX in dieser header-Datei werden explizit definiert, die von einer numerischen Konstante.

Ich Frage mich, ob es eine portable Möglichkeit (gegen verschiedene word-Größen auf allen Plattformen) definieren eine INT_MAX ?

Ich habe versucht, die folgenden:

~((int)-1)

Aber das scheint nicht korrekt zu sein.

Eine kurze Erklärung ist auch hoch angesehen.

  • ~((int)-1) ist wahrscheinlich null.
  • Oh, ja! Du hast Recht. Aber ich kann nicht verstehen, warum. Könnten Sie bitte erklären, ein wenig? Vielen Dank!
  • Die bit-Muster für -1 ist allen denen, die in einem zwei-Komplement-system. Das Einerkomplement (~) ein all-ones Wort ist ein alles-Nullen-Wort.
  • Genial! Danke!!! @CarlNorum
  • Warum haben Sie Sorge, da <limits.h> angegeben ist, in der C99 & C11 & POSIX-standards ?
InformationsquelleAutor Hatrick | 2013-07-23
Schreibe einen Kommentar