© Éditions Eyrolles
23
chapitre n° 2
Les types de base du langage C
De plus, il est possible d’utiliser directement le code du caractère en l’exprimant, toujours à la
suite du caractère « antislash » :
●
soit sous forme octale,
●
soit sous forme hexadécimale précédée de x.
Voici quelques exemples de notations équivalentes, dans le code ASCII :
'A'
'\x41'
'\101'
'\r'
'\x0d'
'\15'
'\015'
'\a'
'\x07'
'\x7'
'\07'
'\007'
En fait, il existe plusieurs versions de code ASCII, mais toutes ont en commun la première moitié des codes (correspondant aux caractères qu’on trouve dans toutes les implémentations) ;
les exemples cités ici appartiennent bien à cette partie commune.
Le caractère \, suivi d’un caractère autre que ceux du tableau ci-dessus ou d’un chiffre de 0 à
7 est simplement ignoré. Ainsi, dans le cas où l’on a affaire au code ASCII, \9 correspond au
caractère 9 (de code ASCII 57), tandis que \7 correspond au caractère de code ASCII 7, c’està-dire la « cloche ».
En fait, la norme prévoit deux types : signed char et unsigned char (char correspondant soit
à l’un, soit à l’autre, suivant le compilateur utilisé). Là encore, nous y reviendrons dans le chapitre 13. Pour l’instant, sachez que cet attribut de signe n’agit pas sur la représentation d’un
caractère en mémoire. En revanche, il pourra avoir un rôle dans le cas où l’on s’intéresse à la
valeur numérique associée à un caractère.
5 Initialisation et constantes
1. Nous avons déjà vu que la directive #define permettait de donner une valeur à un symbole. Dans ce cas, le préprocesseur effectue le remplacement correspondant avant la
compilation.
2. Par ailleurs, il est possible d’initialiser une variable lors de sa déclaration comme dans :
int n = 15 ;
Ici, pour le compilateur, n est une variable de type int dans laquelle il placera la valeur
15 ; mais rien n’empêche que cette valeur initiale évolue lors de l’exécution du programme. Notez d’ailleurs que la déclaration précédente pourrait être remplacée par une
déclaration ordinaire (int n), suivie un peu plus loin d’une affectation (n=15) ; la seule
différence résiderait dans l’instant où n recevrait la valeur 15.
Delannoy Livre.book Page 23 Mercredi, 6. mai 2009 4:26 16
23
chapitre n° 2
Les types de base du langage C
De plus, il est possible d’utiliser directement le code du caractère en l’exprimant, toujours à la
suite du caractère « antislash » :
●
soit sous forme octale,
●
soit sous forme hexadécimale précédée de x.
Voici quelques exemples de notations équivalentes, dans le code ASCII :
'A'
'\x41'
'\101'
'\r'
'\x0d'
'\15'
'\015'
'\a'
'\x07'
'\x7'
'\07'
'\007'
En fait, il existe plusieurs versions de code ASCII, mais toutes ont en commun la première moitié des codes (correspondant aux caractères qu’on trouve dans toutes les implémentations) ;
les exemples cités ici appartiennent bien à cette partie commune.
Le caractère \, suivi d’un caractère autre que ceux du tableau ci-dessus ou d’un chiffre de 0 à
7 est simplement ignoré. Ainsi, dans le cas où l’on a affaire au code ASCII, \9 correspond au
caractère 9 (de code ASCII 57), tandis que \7 correspond au caractère de code ASCII 7, c’està-dire la « cloche ».
En fait, la norme prévoit deux types : signed char et unsigned char (char correspondant soit
à l’un, soit à l’autre, suivant le compilateur utilisé). Là encore, nous y reviendrons dans le chapitre 13. Pour l’instant, sachez que cet attribut de signe n’agit pas sur la représentation d’un
caractère en mémoire. En revanche, il pourra avoir un rôle dans le cas où l’on s’intéresse à la
valeur numérique associée à un caractère.
5 Initialisation et constantes
1. Nous avons déjà vu que la directive #define permettait de donner une valeur à un symbole. Dans ce cas, le préprocesseur effectue le remplacement correspondant avant la
compilation.
2. Par ailleurs, il est possible d’initialiser une variable lors de sa déclaration comme dans :
int n = 15 ;
Ici, pour le compilateur, n est une variable de type int dans laquelle il placera la valeur
15 ; mais rien n’empêche que cette valeur initiale évolue lors de l’exécution du programme. Notez d’ailleurs que la déclaration précédente pourrait être remplacée par une
déclaration ordinaire (int n), suivie un peu plus loin d’une affectation (n=15) ; la seule
différence résiderait dans l’instant où n recevrait la valeur 15.
Delannoy Livre.book Page 23 Mercredi, 6. mai 2009 4:26 16
