Programmer en langage C
42
© Éditions Eyrolles
ou, mieux encore :
a = a * b
par :
a *= b
D’une manière générale, C permet de condenser les affectations de la forme :
lvalue
=
lvalue
opérateur
expression
en :
lvalue
opérateur=
expression
Cette possibilité concerne tous les opérateurs binaires arithmétiques et de manipulation de bits.
Voici la liste complète de tous ces nouveaux opérateurs nommés « opérateurs d’affectation
élargie » :
+= -= *= /= %= |= ^= &= <<= >>=
Les cinq derniers correspondent en fait à des « opérateurs de manipulation de bits » (|, ^, &,
<< et >>) que nous n’aborderons que dans le chapitre 13.
Ces opérateurs, comme ceux d’incrémentation, permettent de condenser l’écriture de certaines instructions et contribuent à éviter la redondance introduite fréquemment par l’opérateur
d’affectation classique.
Ne confondez pas l’opérateur de comparaison <= avec un opérateur d’affectation élargie.
Notez bien que les opérateurs de comparaison ne sont pas concernés par cette possibilité.
9 Les conversions forcées par une affectation
Nous avons déjà vu comment le compilateur peut être amené à introduire des conversions
implicites dans l’évaluation des expressions. Dans ce cas, il applique les règles de promotions
numériques et d’ajustement de type.
Par ailleurs, une affectation introduit une conversion d’office dans le type de la lvalue réceptrice,
dès lors que cette dernière est d’un type différent de celui de l’expression correspondante.
Par exemple, si n est de type int et x de type float, l’affectation :
n = x + 5.3 ;
Delannoy Livre.book Page 42 Mercredi, 6. mai 2009 4:26 16
Précédent

- 55/281

Suivant