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?

Our team will help you with your specific setup - in German or English, by people who run the platform themselves.

War dieses Tutorial hilfreich?

Your answer is stored anonymously and helps us improve our tutorials.

Kommentare

No comments yet - be the first to ask a question about this tutorial.

Sign in to comment

Comments are open to centron customers. Sign in to your account to ask a question about this tutorial.

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