Qu'est-ce que Promotion entière (integer promotion) ?

Règle du C qui convertit, avant une opération, les valeurs des types entiers plus petits qu'int (char, short, champs de bits, etc.) en int (ou en unsigned int si int ne peut pas les représenter). De ce fait, même la somme de deux uint8_t de 8 bits est calculée sur la largeur d'un int, et le résultat de ~ a aussi des 1 dans les bits de poids fort. La valeur revient à la largeur plus petite lorsque le résultat est affecté à une variable d'un type plus petit. Avec les « conversions arithmétiques usuelles », qui unifient les types dans les opérations mélangeant opérandes signés et non signés, elle influe sur le résultat des comparaisons et des opérations bit à bit.

Nom japonais: 整数拡張

« Promotion entière (integer promotion) » apparaît dans 2 questions d'entraînement réparties sur 1 thèmes, dont Bases de la programmation en C.

Domaine: Bases de la programmation en C

« Promotion entière (integer promotion) » dans les explications

Questions mentionnant « Promotion entière (integer promotion) » (2)

  1. unsigned char fait 8 bits et int fait 32 bits. Quelle est la sortie obtenue en exécutant le code ci-dessus ?
  2. uint8_t est un type entier non signé de 8 bits et int fait 32 bits. Quel est le résultat de l'exécution du code ci-dessus ?

Termes associés

Microcontrôleur Alignement et remplissage (padding) Allocation dynamique de mémoire Champ de bits (bit-field) Comportement indéfini (undefined behavior) Débordement de tampon (buffer overflow) Fuite de mémoire (memory leak) Macro (#define) Pointeur Pointeur de fonction

Retour au glossaire