Les types prédéfinis
Le C est un langage typé. Cela signifie en particulier que toute variable, constante ou fonction est d'un type
précis. Le type d'un objet définit la façon dont il est représenté en mémoire.
La mémoire de l'ordinateur se décompose en une suite continue d'octets. Chaque octet de la mémoire est
caractérisé par son adresse, qui est un entier. Deux octets contigus en mémoire ont des adresses qui diffèrent
d'une unité. Quand une variable est définie, il lui est attribué une adresse. Cette variable correspondra à une zone
mémoire dont la longueur (le nombre d'octets) est fixée par le type.
La taille mémoire correspondant aux différents types dépend des compilateurs ; toutefois, la norme ANSI
spécifie un certain nombre de contraintes.
Les types de base en C concernent les caractères, les entiers et les flottants (nombres réels). Ils sont désignés par
les mots-clefs suivants :
char int float double short long unsigned
1 . Le type caractère
Le mot-clef char désigne un objet de type caractère. Un char peut contenir n'importe quel élément du jeu de
caractères de la machine utilisée. La plupart du temps, un objet de type char est codé sur un octet ; c'est l'objet le
plus élémentaire en C. Le jeu de caractères utilisé correspond généralement au codage ASCII (sur 7 bits). La
plupart des machines utilisent désormais le jeu de caractères ISO-8859 (sur 8 bits), dont les 128 premiers
caractères correspondent aux caractères ASCII. Les 128 derniers caractères (codés sur 8 bits) sont utilisés pour
les caractères propres aux différentes langues.
Une des particularités du type char en C est qu'il peut être assimilé à un entier : tout objet de type char peut être
utilisé dans une expression qui utilise des objets de type entier. Par exemple, si c est de type char, l'expression c
+ 1 est valide. Elle désigne le caractère suivant dans le code ASCII. Ainsi, le programme suivant imprime le
caractère 'B'.
main()
{
char c = 'A';
printf("%c", c + 1);
}
2 . Les types entiers
Le mot-clef désignant le type entier est int. Un objet de type int est représenté par un mot ``naturel'' de la
machine utilisée, 32 bits pour un DEC alpha ou un PC Intel.
Le type int peut être précédé d'un attribut de précision (short ou long) et/ou d'un attribut de représentation
(unsigned).Un objet de type short int a au moins la taille d'un char et au plus la taille d'un int. En général, un
short int est codé sur 16 bits. Un objet de type long int a au moins la taille d'un int (64 bits sur un DEC alpha, 32
bits sur un PC Intel).
3 . Les types flottants
Les types float, double et long double servent à représenter des nombres en virgule flottante. Ils correspondent
aux différentes précisions possibles.