#include <stdint.h> // <cstdint> en C++
Les types int_least8_t, int_least16_t, int_least32_t et int_least64_t
garantissent une largeur minimale. Par exemple, int_least16_t contient au moins 16 bits, mais l'implémentation peut choisir
un type plus large si c'est nécessaire.
| Famille | Description |
|---|---|
int_leastN_t |
Entier signé contenant au moins N bits. |
uint_leastN_t |
Entier non signé contenant au moins N bits. |
Les types int_fast8_t, int_fast16_t, int_fast32_t et int_fast64_t garantissent eux aussi
une largeur minimale, mais la priorité est donnée à la rapidité de manipulation par le processeur. Il est donc fréquent qu'un
int_fast8_t soit plus large que 8 bits.
| Famille | Description |
|---|---|
int_fastN_t |
Entier signé d'au moins N bits, choisi pour être rapide. |
uint_fastN_t |
Entier non signé d'au moins N bits, choisi pour être rapide. |
Le bloc suivant montre comment utiliser ces deux familles de types. Le type int_least16_t est employé pour documenter une
contrainte de taille minimale, tandis que uint_fast32_t est choisi pour un compteur manipulé fréquemment.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <stdint.h> #include <stdio.h> #include <stdlib.h> int main() { int_least16_t delta = -32000; uint_fast32_t counter = 0; for ( unsigned int index = 0; index < 5; index++ ) { counter += UINT32_C( 1000 ); } printf( "delta == %ld\n", (long) delta ); printf( "counter == %lu\n", (unsigned long) counter ); return EXIT_SUCCESS; } |
Les résultats produits par cet exemple sont :
delta == -32000 counter == 5000
Si vous devez écrire ou relire un format binaire strict, préférez les types de largeur exacte. Si vous avez seulement besoin d'une capacité
minimale, les types least sont plus souples. Enfin, si vous cherchez surtout un type efficace pour le processeur tout en imposant
une largeur minimale, les types fast sont plus adaptés.
Améliorations / Corrections
Vous avez des améliorations (ou des corrections) à proposer pour ce document : je vous remerçie par avance de m'en faire part, cela m'aide à améliorer le site.
Emplacement :
Description des améliorations :