type de base

Les types de base correspondent dans le langage C aux types directement supportés par la machine (entiers signés ou non, de différentes taille, nombre réels en virgule flottante de différentes précision).

Les entiers

int (unsigned int) entier
short (unsigned short) entier court
long (unsigned long) entier long
long long (unsigned long long)
char (signed char, unsigned char) caractère ASCII qui est une sorte de type entier

Les réels

float réel en virgule flottante
double réel en virgule flottante en double précision

Les cas des caractères et des booléens.

Contrairement à Pascal, Java ou Ada, quand on déclare un objet de type char, on obtient en fait un entier et, hérésie, on peut écrire :

char c ;

c ='a' + 1 ;

/* on obtient dans l'objet c le code ASCII du caractère 'b' */

Le langage C comporte un notation pour désigner des caractères (le caractère entre apostrophe), mais toutes les opérations sur les entiers sont applicables sur les objets de "type" char.

En fait, le langage C est très souple (ou laxiste suivant les points de vue) quant aux opérations sur les type de base. Contrairement à Ada ou Java, il utilise systématiquement la conversion implicite de types.

On peut écrire :

int i ;

i = 3,04 + 1 ; /* ce qui place dans i la valeur 4 */

Le langage C (sauf la version C99) ne comporte pas de types booléen (car ce n'est pas supporté par les machines). Comme on a cependant besoin des valeurs vraie ou fausse, pour l'instruction if par exemple, le programmeur doit savoir que faux est codé par la valeur entière 0, et vrai par 1 (codage identique dans tous les langages), et que toutes valeurs différentes de 0 est prise pour vrai

Types entiers (taille minimum, plage minimum de valeurs)

Pour chaque type entier, vous êtes assurés d'une plage minimum de valeurs et d'une taille minimum en bits.

Type

Plage minimum

Taille minimum en bits

signed char

-128..127

8

unsigned char

0.255

8

short

-32767 .. 32767

16

unsigned short

0..65535

16

int

-32767 .. 32767

16

unsigned int

0..65535

16

long

- 2147483647 .. 2147483647

32

unsigned long

0..4294967295

32

long long

-9223372036854775807..9223372036854775807

32

unsigned long long

0 .. 18446744073709551615

64

» Glossaire du langage C