Aller au contenu principal

Types de données

Le langage C offre quelques types primitifs :

TypeLangage CTailleLittéral
Entierchar1 octet127 ou '~'
short2 octets32767
int4 octets2147483647
long8 octets9223372036854775807
Réelfloat4 octets3.1415926f
double8 octets3.141592653589793

Il est possible de préciser, pour les types entiers, que les valeurs ne peuvent être que positives ou nulles, permettant de représenter de plus grandes valeurs :

Langage CTailleLittéral
unsigned char1 octet255
unsigned short2 octets65535
unsigned int4 octets4294967295U
unsigned long8 octets18446744073709551615U

Il est à noter que sur les plateformes Windows, ce sont les types long long et unsigned long long qui ont une taille de 8 octets.

Plages de valeurs​

Ce qui différencie les types d'entiers du langage C, ce sont leurs tailles. La taille permet de déterminer la plage de valeurs possible, qui se calcule selon le nombre de bits de chacun des types :

Langage CPossibilitésPlage
unsigned char28[0; 255]
unsigned short216[0; 65535]
unsigned int232[0; 4294967295]
unsigned long264[0; 18446744073709551615]

La plage est différente pour les types signés, puisqu'un bit sert à préciser le signe :

Langage CPlage
char[-128; 127]
short[-32768; 32767]
int[-2147483648; 2147483647]
long[-9223372036854775808; 9223372036854775807]

Les types réels obéissent à une autre logique. Leur limite pratique est la précision plutôt que la plage :

Langage CPlage approximativeChiffres significatifs
float±3.4e38~7
double±1.8e308~15