![]() ![]() ![]() |
|
L a n g a g e C
L e s t y p e s d e b a s e
Le type d'un identificateur précise son mode de représentation et la taille mémoire nécessaire à son stockage, les opérations qui peuvent lui être appliquées et leur interprétation. Un nom de type sert le plus souvent dans les déclarations. Les seuls opérateurs applicables sur les types sont sizeof pour déterminer sa taille, et l'opérateur de conversion cast qui convertit une expression en un autre type. Les types char, signed char et unsigned char
Le type char est utilisé pour représenter les caractères de l'ordinateur. Sa taille est en général de 1 octet. Une valeur de type char est un nombre correspondant au code ASCII) du caractère. Les tailles des autres types sont exprimés en terme de multiples de la taille d'un char, ainsi par définition sizeof(char) vaut 1. Le type char peut être, suivant le matériel, soit signé, soit non signé. Le type signed char est toujours signé, unsigned char toujours non signé. Leur emploi donne donc des programmes plus portables : Exemple : char c = 'a' Les types int, unsigned int, short et long
Le type int convient à l'arithmétique entière. Il est signé et occupe un mot machine. Sa taille, en général 16 ou 32 bits, dépend du processeur utilisé. Exemple : int cpt, nombreMots = 0, i = -123; Le type int est le type implicite en C : dans certains cas, l'omission du type dans une déclaration ou l'omission d'une déclaration conduit à une déclaration implicite de type int. unsigned est équivalent à unsigned int, short à short int, et long à long int. Exemple :
Le type unsigned int, de taille identique, est non signé. Il est utile pour traiter la mémoire comme vecteur de bits. Par contre, il est déconseillé de se servir d'un unsigned à la place d'un int, pour gagner un bit sur un entier positif. En effet, aucun contrôle n'est effectué de la part du compilateur, et pire, des conversions implicites risquent de donner des résultats indésirés. Exemple :
Les types short et long sont également des types entiers en général de tailles respectives 16 et 32 bits, et peuvent se combiner avec unsigned. Ils sont moins dépendants de l'architecture de la machine, leur utilisation donne donc des programmes plus portables. Constantes
Une constante entière dont la valeur dépasse le plus grand entier est supposée être de type long, sinon le compilateur considère que les constantes entières sont de type int. Une constante immédiatement suivie de la lettre l (ou L) sera considérée du type long. 450000, 07L, 0x0FFFl sont des constantes de type long. Les constates caractères sont considérées comme étant de type int. Les types float et double
Le type float est utilisé pour représenter des valeurs à virgule flottante en simple précision. Sa taille est généralement de 32 bits. Le type double représente les valeurs à virgule flottante en double précision. Sa taille est 2*sizeof(float) (soit 64 bits). Exemple : float angle, x, rayon; Constantes
Les constantes réelles sont considérées comme étant de type double. Récapitulatif des tailles de chaque type
Le type void
Le type void indique un ensemble vide de valeur. Une fonction de type void ne renvoie pas de valeur. Un pointeur sur un type void pointe sur une zone mémoire sans type. Une liste de paramètres formels de type void indique que la fonction n'a pas de paramètre. Exemple :
Les conversions implicites
On peut mélanger librement les types de base dans les expressions. Le compilateur convertit les valeurs de façon à ce qu'elles ne perdent pas d'information quand cela est possible. Caractère/entier
Float/double
Les conversions entre float et double dépendent de la machine. Réel/entier
|
![]() |
![]() |
![]() |
© 2000-2025 Exood4 Studio. Tous droits réservés. |