logo

Qu’est-ce que short int en C ?

En langage de programmation C, entier court est un type de données utilisé pour stocker des valeurs entières. C'est un modificateur de type qui peut être utilisé avec le type de données entier pour créer une variable entière plus petite, utilisant moins de mémoire qu'un int normal.

Le entier court le type de données occupe 2 octets de mémoire, soit la moitié de la taille d'un ordinateur ordinaire type de données entier , et peut représenter des valeurs entières dans la plage de -32 768 à 32 767 .

Syntaxe de Short int

arbre binaire en Java

La syntaxe pour déclarer une variable int courte est la suivante :

 short int variable_name; 

Par exemple, le code suivant déclare et initialise un entier court variable nommée âge :

 short int age = 25; 

Les variables int courtes peuvent conduire à des erreurs si elles ne sont pas utilisées avec précaution. C'est parce qu'ils ont une plage de valeurs plus petite que variables entières et peuvent déborder si une valeur leur est attribuée en dehors de leur plage. Pour cette raison, il est important de s'assurer que les valeurs attribuées à une variable int courte se situent dans sa plage.

De plus, le mot-clé court peut être utilisé à la place du entier court pour déclarer une variable de ce type. Les deux déclarations suivantes sont donc équivalentes :

 short int variable_name; short variable_name; 

Quelques autres détails supplémentaires sur le Type de données 'short int' sont les suivants:

    Taille et plage de valeurs

Comme mentionné précédemment, short int occupe 2 octets de mémoire, soit la moitié de la taille d'un type de données int classique. La taille d'un short int est définie par l'implémentation, ce qui signifie qu'elle peut varier en fonction de la plate-forme et du compilateur utilisés. Cependant, il est toujours garanti qu'il est plus petit qu'un entier normal.

En termes de plage de valeurs, un int court peut stocker des valeurs entières dans la plage de -32 768 à 32 767 . Cette plage peut être déterminée à l'aide du SHRT_MIN et SHRT_MAX constantes, qui sont définies dans le limites.h En tête de fichier.

    Utilisation de « short int »

Le type de données short int est généralement utilisé lorsque l'espace mémoire est un problème ou lorsque la plage de valeurs stockées dans la variable est comprise dans la plage d'un short int. Voici quelques exemples de situations dans lesquelles un short int peut être utilisé :

  • Dans les systèmes embarqués où la mémoire est limitée.
  • Lors de la création de grands tableaux d'entiers où l'utilisation de la mémoire doit être optimisée.
  • Lorsque l'on sait que la plage de valeurs stockées dans la variable se situe dans la plage d'un entier court , comme le stockage de l'âge d'une personne, qui ne dépasse généralement pas 100 ans .
  • Modificateurs de type

Le type de données int court est un modificateur de type, ce qui signifie qu'il peut être utilisé en combinaison avec d'autres types de données pour créer de nouveaux types de données. Par exemple, les déclarations suivantes sont valides pour les variables :

 short int x; short y; short int *ptr; short int arr[10]; 
    Conversions implicites

Lors de l'exécution d'opérations arithmétiques ou de comparaison entre des variables de différents types de données, C peut effectuer des conversions implicites pour garantir que les opérations sont effectuées correctement. Lorsque vous utilisez des variables int courtes, il est important d'être conscient de ces conversions, car elles peuvent entraîner un comportement inattendu. Par exemple, considérons le code suivant :

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

Sortir:

 500 

Explication:

Dans ce code, z je on lui attribue la valeur de 500 , qui est le résultat correct de l’ajout X et et . Cependant, si le imprimer la déclaration est modifiée en printf('%hu ', z), la sortie sera 244 , qui est le résultat de la conversion 500 à un non signé entier court . Cela arrive parce que le %hu un spécificateur de format est utilisé, ce qui indique que la valeur en cours d'impression doit être un entier court non signé.

    Promotion et rétrogradation

Lors de l'exécution d'opérations entre des variables de différents types de données, C peut effectuer des promotions et des rétrogradations pour garantir que les opérations sont effectuées correctement. Une promotion se produit lorsqu'une variable d'un type de données plus petit est implicitement convertie en une variable d'un type de données plus grand, tandis qu'une rétrogradation se produit lorsqu'une variable d'un type de données plus grand est implicitement convertie en une variable d'un type de données plus petit. Lorsque vous utilisez des variables int courtes, il est important d'être conscient de ces promotions et rétrogradations, car elles peuvent affecter les résultats des opérations arithmétiques et de comparaison.

    Initialisation par défaut

Si un variable entière courte est déclaré sans être initialisé, sa valeur est indéfinie. En d'autres termes, il peut contenir n'importe quelle valeur, y compris une valeur négative ou une valeur en dehors de la plage de entier court . C’est donc une bonne pratique de toujours initialiser les variables à une valeur connue lorsqu’elles sont déclarées.

tableau trier java
    Fonderie

Fonderie est le processus de conversion d'une variable d'un type de données à un autre. Lors de la conversion d'une variable en un entier court , la valeur de la variable est tronquée pour s'adapter à la plage de entier court . Par exemple, considérons le code suivant :

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

Dans ce code, la valeur de X est 500 , ce qui est en dehors de la plage des short int. Cependant, quand X est jeté à un court int, la valeur est tronquée pour s'adapter à la plage de entier court , résultant en et se voir attribuer la valeur de -12 . Par conséquent, lors de la conversion de variables, il est important de s'assurer que la valeur résultante se situe dans la plage du type de données en cours de conversion.

    Signature

Par défaut, entier court est un type de données signé , ce qui signifie qu'il peut représenter à la fois des valeurs positives et négatives. Cependant, il est également possible de déclarer entier court comme type de données non signé, en utilisant le entier court non signé ou mot-clé court non signé . Un int court non signé ne peut représenter que des valeurs non négatives, mais sa plage est doublée pour atteindre 0 à 65 535 .

dépôt maven
    Compatibilité

Depuis entier court est un type de données plus petit que int , il peut être implicitement promu en int lorsqu'il est utilisé dans arithmétique ou des opérations de comparaison avec un int. Cela signifie qu'un entier court peut être utilisé partout où un int est attendu, sans avoir besoin d'un casting explicite.

    Portabilité

La taille de entier court peut varier en fonction de la plate-forme et du compilateur utilisé. Pour garantir la portabilité du code sur différentes plates-formes, il est recommandé d'utiliser le fichier d'en-tête stdint.h , qui définit des types entiers de taille fixe avec des largeurs et une signature spécifiques. Par exemple, le int16_t tapez est un Type entier signé 16 bits , ce qui équivaut à entier court sur la plupart des plateformes.

    Indexation des tableaux

Lors de la déclaration d'un tableau de valeurs entières courtes , chaque élément du tableau est accessible à l'aide d'un index. L'index peut être un littéral entier ou une variable de type int. Cependant, si l'index est une variable de type entier court , il sera automatiquement promu au rang de int avant d'être utilisé pour accéder au tableau. Par exemple:

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

entier court peut être utilisé pour des opérations de manipulation de bits, telles que déplacement et masquage . Lors du déplacement d'un entier court valeur, le résultat est une valeur int courte. Cependant, lorsque vous utilisez des opérateurs au niveau du bit comme & et |, les valeurs int courtes sont d'abord promues en int avant que l'opération ne soit effectuée.

    Performance

Dans certains cas, l'utilisation de short int au lieu de int peut améliorer les performances, en particulier sur les plates-formes dotées d'une mémoire ou d'une puissance de traitement limitées. Cependant, cela dépend de l'application spécifique et du matériel utilisé et doit être testé au cas par cas.

    Initialisation à l'aide du suffixe

Le langage C fournit un suffixe pour initialiser les variables avec un type int court. Le suffixe 's' ou 'S' peut être utilisé avec une valeur constante pour spécifier explicitement une constante int courte. Par exemple:

 Short int x=10s;