Les types

Un type caractérise les valeurs que peut prendre une donnée.

Selon le langage informatique on utilisera généralement :

  • le typage statique : les vérifications de type sont faites à la compilation : C, C++, Pascal...
  • le typage dynamique : les vérifications sont faites à l'exécution : Python, PHP, javascript.....


Un bon choix de type permet d'optimiser un programme mais aussi d'éviter des dysfonctionnements parfois tragiques :

Le vol d'Ariane 5 a échoué parce que le type de la variable définissant l'accélération était mauvais, ce qui a provoqué un erreur de dépassement d'entier. (Sources Wikipedia).


Le types classiques en C/C++


Type

Explication

Taille (en octets)

Plage de valeurs

bool

booléen (existe en C++ mais pas en C)


true ou false

char

caractère

1

-128 à +127

unsigned char

caractère non signé

1

0 à 255

int

Entier

2 (processeur 16bits)

-32768 à 32767

unsigned int

Entier non signé

2 (processeur 16 bits)

0 à 65535

long int

Entier long

4

-2147483648 à 2147483647

unsigned long int

Entier long non signé

4

0 à 4294967295

float

flottant (à virgule)

4

3.4*10-38 à 3.4*1038

double

double flottant

8

1.7*10-308 à 1.7*10308

long double

flottant double long

10

3.4*10-4932 à 3.4*104932


Il est possible de créer d'autres types en utilisant des structures de données.


Utilisation

En C, toute déclaration de variable ou de fonction commence par le type.

Exemple

//Déclaration d'un caractère

char retour;

//Dans une itération

for (int i=0 i<10;i++)....

//Dans une fonction

int maximum()

{

....

}

Remarques

Char :

Un type char permet de stocker la valeur ASCII d'un caractère

char caractere;


caractere = 66;

est identique à

caractere = 'B';


Chaine de caractères

Le type STRING n'existe pas en C. Mais une chaîne de caractère est un tableau de caractère qui se termine par '\0' pour indiquer la fin de la chaîne.


Ainsi :

char machaine[8];

machaine[0]='B';

machaine[1]='o';

machaine[2]='n';

machaine[3]='j';

machaine[4]='o';

machaine[5]='u';

machaine[6]='r';

machaine[0]='\0';


Une autre manière consiste à ne pas définir la taille du tableau :

char machaine[];

machaine="Bonjour";


Remarque : un caractère en encadré par des guillemets simple et un mot par des guillemets doubles.

Conversion de type :

C étant très stricte, il n'est pas possible d'associer deux types différents... Un int n'est pas un char.

Des fonctions de conversion existent (en particulier dans les bibliothèques de QT Creator).

Un chapitre est consacré à ces conversions.