Utilité des parenthèses - (char) - C - Programmation
Marsh Posté le 15-02-2006 à 12:53:24
C'est un cast, i est probablement un int et %c represente un char donc tu caste int en char.
Marsh Posté le 15-02-2006 à 13:11:45
b777 a écrit : En bidouillant et en cherchant un peu sur le net, j'ai trouvé une "astuce" et ça resoud mon problème, sympa hein
|
Il est temps d'ouvrir un livre de C (dés références sur mon site). Le typecast est une des opérations élémentaires du langage (abus dangereux).
Il faut cesser de programmer au hasard.
Marsh Posté le 15-02-2006 à 15:36:22
b777 a écrit : Bonjour,
|
francky06l a écrit : C'est un cast, i est probablement un int et %c represente un char donc tu caste int en char. |
Pour faire suite à "francky06l", le "cast" vient de l'anglais "cast" qui signifie "jouer un rôle" et qui a donné le "casting" au cinéma.
Ta variable "i" (mettons qu'elle soit "short" ) est considérée, à cet endroit, comme un "char" et les 8 bits de poid fort disparaissent. Si elle contient une valeur plus grande que 255, cette valeur est tronquée à "modulo 255".
Il existe des cast dits "implicites" car ils sont faits de façon naturelle
int a; |
Le code que tu montres est un cast "explicite" car tu écris le type voulu toi-même. Dans ton cas à toi, il n'est pas obligatoire. Mais il peut l'être aileurs... Exemple:
int a=10; |
Si tu affiches "c", tu auras "3.00000" car "a" et "b" étant des "int", l'opération s'est faite en "int" et le résultat "3" a été casté en double.
En revanches, si tu affiches "d", tu auras bien "3.33333" car, pendant la division, "a" et "b" auront été considérés comme des "doubles".
De plus, comme durant une opération l'ensemble des valeurs est convertie dans le type le plus large de tous les types présents, on n'est pas obligé de mettre un cast sur les deux opérandes => "c=(double) a / b" est bien suffisant...
Marsh Posté le 15-02-2006 à 12:51:27
Bonjour,
En bidouillant et en cherchant un peu sur le net, j'ai trouvé une "astuce" et ça resoud mon problème, sympa hein
C'est :
en mettant des parenthèses autour de char
Je voulais juste savoir à quoi servait ces parenthèses... si vous avez une explication ou un lien vers de la doc, je prend
merci