Tutorials  /  Linux Basics

Verwendung von INT_MAX und INT_MIN in C/C++

Ccentron Redaktion · Januar 2024 ·3 Min. Lesezeit ·Linux Basics, Tutorial

In diesem Artikel werden wir uns die Verwendung von INT_MAX und INT_MIN in C/C++ ansehen.

Dies sind tatsächlich nützliche Makros, die die maximalen und minimalen Ganzzahlwerte darstellen.

Lassen Sie uns dies anhand einiger Beispiele betrachten.

Verwendung von INT_MAX und INT_MIN

INT_MAX ist ein Makro, das den maximalen Ganzzahlwert darstellt. Ähnlich stellt INT_MIN den minimalen Ganzzahlwert dar.

Diese Makros sind in der Headerdatei definiert, daher müssen Sie diese einbinden.

Code
#include <limits.h>
INT_MAX
INT_MIN

Beachten Sie, dass jede Ganzzahlvariable zwischen INT_MIN und INT_MAX liegen muss.

Typischerweise werden Ganzzahlen als 4 Bytes (32 Bit) gespeichert.

Dies bedeutet, dass auf fast allen Maschinen der maximale Ganzzahlwert 2^(31) - 1 = +2147483647 sein wird.

Der minimale Ganzzahlwert wird -(2^31) = -2147483648 sein

Lassen Sie uns dies für unsere Maschine überprüfen.

Code
#include <stdio.h>
#include <limits.h>

int main() {
    printf("Maximaler Ganzzahlwert: %d\n", INT_MAX);
    printf("Minimaler Ganzzahlwert: %d\n", INT_MIN);
    return 0;
}

Output

Code
Maximum Integer Value: 2147483647
Minimum Integer Value: -2147483648

Tatsächlich erhalten wir, was wir vorhergesagt haben.

VM

Passende Infrastruktur bei centron

Zum Ausprobieren braucht es keine eigene Hardware: ccloud³ VMs mit vollem Root-Zugriff gibt es ab 3,12 € im Monat, stundengenau abgerechnet und in Sekunden bereit. Cloud Server mieten →

Beispiel für Ganzzahlüberlauf und -unterlauf

Lassen Sie uns nun ein weiteres Beispiel nehmen, um einen möglichen Ganzzahlüberlauf oder -unterlauf korrekt vorherzusagen.

Code
#include <stdio.h>
#include <limits.h>

int main() {
    int value = 0;
    while (value >= 0) {
        // Check for overflow
        if (value == INT_MAX) {
            printf("value = %d. Possible overflow!\n", value);
        }
        value ++;
    }
    printf("Now, value = %d\n", value);
    value = 0;
    while (value <= 0) {
        // Check for underflow
        if (value == INT_MIN) {
            printf("value = %d. Possible underflow!\n", value);
        }
        value --;
    }
    printf("Now, value = %d\n", value);
    return 0;
}

Output

Code
value = 2147483647. Possible overflow!
Now, value = -2147483648
value = -2147483648. Possible underflow!
Now, value = 2147483647

Obwohl dies einige Sekunden dauert, macht es tatsächlich, was wir erwarten.

Die Ganzzahl wird zu INT_MIN überlaufen und zu INT_MAX unterlaufen.

Dies ist nützlich, um solche Sprünge in den Werten zu erkennen.

INT_MAX und INT_MIN: Warum brauchen wir diese Makros?

Häufig ist es für bestimmte Algorithmen manchmal notwendig, eine Variable als den niedrigsten/höchsten Wert zu initialisieren.

Die Anzahl der Bits des Datentyps kann je nach Maschine unterschiedlich sein.

Um die Verwendung der maximalen/minimalen Werte konsistent zu gestalten, wäre es praktisch, wenn jeder dieselben Makros verwenden könnte!

Dies ist genau der Grund, warum solche Arten von Makros existieren

  • Um Sie davon zu befreien, sich die tatsächlichen Werte zu merken
  • Konsistente Programmiermuster auf allen Maschinen zu haben
  • Sehr praktisch in der Verwendung

Hoffentlich überzeugen Sie diese Gründe, solche Arten von Makros zu verwenden, wann immer Sie Ihre eigene C/C++-Bibliothek erstellen und wie Sie sie anwenden?

Jetzt 200 € Guthaben sichern

Testen Sie Ihr Setup auf ccloud³

Registrieren Sie sich in der ccloud³ und erhalten Sie 200 € Startguthaben für Ihr Projekt – z. B. für eine PostgreSQL-VM mit automatischen Backups.

centron Redaktion Technische Redaktion

Das Redaktionsteam von centron schreibt Anleitungen aus dem Betriebsalltag: getestet auf unserer eigenen Plattform, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Kategorie Linux Basics
Teilen
Noch offene Fragen?

Unser Team hilft Ihnen bei Ihrem konkreten Setup weiter – von Menschen, die die Plattform selbst betreiben.

War dieses Tutorial hilfreich?

Ihre Antwort wird anonym gespeichert und hilft uns, die Tutorials zu verbessern.

Kommentare

Noch keine Kommentare – stellen Sie die erste Frage zu diesem Tutorial.

Zum Kommentieren anmelden

Kommentare stehen centron-Kunden offen. Melden Sie sich in Ihrem Konto an, um eine Frage zu diesem Tutorial zu stellen.

Weiterlesen

Das könnte Sie auch interessieren

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.

Jetzt loslegen Sales kontaktieren