logo

Was ist Short Int in C?

In der Programmiersprache C kurze Int ist ein Datentyp, der zum Speichern ganzzahliger Werte verwendet wird. Es handelt sich um einen Typmodifikator, der mit verwendet werden kann int-Datentyp um eine kleinere Integer-Variable zu erstellen, die weniger Speicher benötigt als eine reguläre int-Variable.

Der kurze Int Datentyp belegt 2 Bytes Speicher, der halb so groß ist wie ein normaler Speicher int-Datentyp und kann ganzzahlige Werte im Bereich von darstellen -32.768 Zu 32.767 .

Syntax von Short int

Polymorphismus

Die Syntax zum Deklarieren einer kurzen int-Variablen lautet wie folgt:

 short int variable_name; 

Der folgende Code deklariert und initialisiert beispielsweise a kurze Int Variable mit dem Namen Alter:

 short int age = 25; 

Die kurzen int-Variablen können zu Fehlern führen, wenn sie nicht sorgfältig verwendet werden. Dies liegt daran, dass sie einen kleineren Wertebereich haben als int-Variablen und können überlaufen, wenn ihnen ein Wert außerhalb ihres Bereichs zugewiesen wird. Aus diesem Grund ist es wichtig sicherzustellen, dass die einer Short-Int-Variable zugewiesenen Werte innerhalb ihres Bereichs liegen.

Darüber hinaus kann anstelle von das Schlüsselwort short verwendet werden kurze Int um eine Variable dieses Typs zu deklarieren. Daher sind die folgenden beiden Deklarationen gleichwertig:

 short int variable_name; short variable_name; 

Einige weitere zusätzliche Details zum Datentyp „short int“. sind wie folgt:

    Größe und Wertebereich

Wie bereits erwähnt, ist short int besetzt 2 Bytes Speicher, der halb so groß ist wie ein regulärer int-Datentyp. Die Größe eines Short-Ints ist durch die Implementierung definiert, was bedeutet, dass sie je nach verwendeter Plattform und Compiler variieren kann. Es ist jedoch immer garantiert, dass es kleiner als ein normaler int ist.

Was den Wertebereich betrifft, kann ein Short-Int ganzzahlige Werte im Bereich von speichern -32.768 Zu 32.767 . Dieser Bereich kann anhand der ermittelt werden SHRT_MIN Und SHRT_MAX Konstanten, die in der definiert sind Grenzen.h Header-Datei.

    Verwendung von „short int“

Der Datentyp „Short Int“ wird normalerweise verwendet, wenn der Speicherplatz ein Problem darstellt oder wenn der in der Variablen gespeicherte Wertebereich im Bereich eines Short Int liegt. Einige Beispiele für Situationen, in denen ein Short-Int verwendet werden kann, sind:

  • In eingebetteten Systemen, in denen der Speicher begrenzt ist.
  • Beim Erstellen großer Ganzzahl-Arrays, bei denen die Speichernutzung optimiert werden muss.
  • Wenn bekannt ist, dass der in der Variablen gespeicherte Wertebereich im Bereich von a liegt kurze Int B. die Speicherung des Alters einer Person, das normalerweise nicht überschritten wird 100 Jahre .
  • Typmodifikatoren

Der kurzer int-Datentyp ist ein Typmodifikator, was bedeutet, dass er in Kombination mit anderen Datentypen verwendet werden kann, um neue Datentypen zu erstellen. Gültige Variablendeklarationen sind beispielsweise:

 short int x; short y; short int *ptr; short int arr[10]; 
    Implizite Konvertierungen

Bei der Durchführung von Rechen- oder Vergleichsoperationen zwischen Variablen unterschiedlicher Datentypen führt C möglicherweise implizite Konvertierungen durch, um sicherzustellen, dass die Operationen korrekt ausgeführt werden. Bei der Verwendung von kurzen int-Variablen ist es wichtig, sich dieser Konvertierungen bewusst zu sein, da sie zu unerwartetem Verhalten führen können. Betrachten Sie beispielsweise den folgenden Code:

 #include int main() { short int x = 300; short int y = 200; short int z = x + y; printf('%d
', z); return 0; } 

Ausgabe:

 500 

Erläuterung:

In diesem Code z i s wurde der Wert von zugewiesen 500 , was das korrekte Ergebnis der Addition ist X Und Und . Wenn jedoch die printf Die Anweisung wird geändert in printf('%hu ', z), Die Ausgabe wird sein 244 , was das Ergebnis der Konvertierung ist 500 zu einem unsignierten kurze Int . Es passiert, weil die %hu Es wird ein Formatbezeichner verwendet, der angibt, dass der gedruckte Wert ein vorzeichenloser kurzer Ganzzahlwert sein soll.

iCloud-Bilder auf Android übertragen
    Beförderung und Degradierung

Bei der Durchführung von Operationen zwischen Variablen unterschiedlicher Datentypen führt C möglicherweise Herauf- und Herabstufungen durch, um sicherzustellen, dass die Operationen korrekt ausgeführt werden. Eine Heraufstufung erfolgt, wenn eine Variable eines kleineren Datentyps implizit in eine Variable eines größeren Datentyps konvertiert wird, während eine Herabstufung erfolgt, wenn eine Variable eines größeren Datentyps implizit in eine Variable eines kleineren Datentyps konvertiert wird. Bei der Verwendung von kurzen int-Variablen ist es wichtig, sich dieser Herauf- und Herabstufungen bewusst zu sein, da sie sich auf die Ergebnisse von Rechen- und Vergleichsoperationen auswirken können.

    Standardinitialisierung

Wenn ein kurze int-Variable wird ohne Initialisierung deklariert, sein Wert ist undefiniert. Mit anderen Worten: Es kann einen beliebigen Wert enthalten, einschließlich eines negativen Werts oder eines Werts außerhalb des Bereichs von kurze Int . Daher empfiehlt es sich, Variablen bei der Deklaration immer mit einem bekannten Wert zu initialisieren.

    Casting

Casting ist der Prozess der Konvertierung einer Variablen von einem Datentyp in einen anderen. Beim Umwandeln einer Variablen in a kurze Int , wird der Wert der Variablen so gekürzt, dass er in den Bereich von passt kurze Int . Betrachten Sie beispielsweise den folgenden Code:

 int x = 500; short int y = (short int) x; 

In diesem Code ist der Wert von X Ist 500 , was außerhalb des Bereichs von short int liegt. Wann jedoch X wird zu a gegossen kurzes int, Der Wert wird so gekürzt, dass er in den Bereich von passt kurze Int , ergebend Und wird der Wert von zugewiesen -12 . Daher ist es beim Umwandeln von Variablen wichtig sicherzustellen, dass der resultierende Wert innerhalb des Bereichs des umzuwandelnden Datentyps liegt.

    Signiertheit

Standardmäßig, kurze Int ist ein signierter Datentyp , was bedeutet, dass es sowohl positive als auch negative Werte darstellen kann. Es ist jedoch auch eine Deklaration möglich kurze Int als vorzeichenloser Datentyp unter Verwendung der unsigned short int oder unsigniertes kurzes Schlüsselwort . Ein vorzeichenloser kurzer Ganzzahlwert kann nur nicht negative Werte darstellen, sein Bereich wird jedoch verdoppelt 0 Zu 65.535 .

UML-Diagramm Java
    Kompatibilität

Seit kurze Int ist ein kleinerer Datentyp als int , kann es bei Verwendung implizit zu einem int heraufgestuft werden Arithmetik oder Vergleichsoperationen mit einem int. Es bedeutet, dass a kurze Int überall einsetzbar int wird erwartet, ohne dass eine explizite Besetzung erforderlich ist.

    Portabilität

Die Größe von kurze Int kann je nach verwendeter Plattform und Compiler variieren. Um die Portabilität des Codes über verschiedene Plattformen hinweg sicherzustellen, wird die Verwendung von empfohlen stdint.h Header-Datei , das Integer-Typen fester Größe mit spezifischer Breite und Vorzeichen definiert. Zum Beispiel die Typ int16_t ist ein 16-Bit-Ganzzahltyp mit Vorzeichen , was äquivalent ist zu kurze Int auf den meisten Plattformen.

    Array-Indizierung

Bei der Deklaration eines Arrays von kurze int-Werte , auf jedes Element des Arrays wird über einen Index zugegriffen. Der Index kann ein ganzzahliges Literal oder eine Variable vom Typ int sein. Wenn der Index jedoch eine Variable vom Typ ist kurze Int , es wird automatisch zu einem hochgestuft int bevor es für den Zugriff auf das Array verwendet wird. Zum Beispiel:

 short int arr[10]; short int i = 5; short int val = arr[i]; // i is promoted to int before being used as an index 
    Bit-Manipulation

kurze Int kann für Bitmanipulationsoperationen verwendet werden, wie z Verschiebung Und Maskierung . Beim Schalten a kurze Int Wert, das Ergebnis ist ein kurzer int-Wert. Bei Verwendung bitweiser Operatoren wie & und |, Die kurzen int-Werte werden zunächst zu int heraufgestuft, bevor die Operation ausgeführt wird.

    Leistung

In einigen Fällen kann die Verwendung von short int anstelle von int die Leistung verbessern, insbesondere auf Plattformen mit begrenztem Speicher oder begrenzter Verarbeitungsleistung. Dies hängt jedoch von der konkreten Anwendung und der verwendeten Hardware ab und sollte im Einzelfall getestet werden.

    Initialisierung mit Suffix

Die Sprache C bietet ein Suffix zum Initialisieren von Variablen mit einem kurzen int-Typ. Das Suffix 'S' oder 'S' kann mit einem konstanten Wert verwendet werden, um explizit eine kurze int-Konstante anzugeben. Zum Beispiel:

 Short int x=10s;