Bonjour,
C'est en fait pour éviter d'avoir des problèmes avec les priorités d'opérateurs arithmétiques et des problèmes de compilation.
C'est en fait pour éviter d'avoir des problèmes avec les priorités d'opérateurs arithmétiques et des problèmes de compilation.
Si nous n'avions pas de parenthèse :
l'interpréteur de macro produirait à partir de
#define ADD(x,y) x+y
l'interpréteur de macro produirait à partir de
2*ADD(3,4)
le code C 2*3+4
alors que l'on veut en fait que le C évalue l'expression 2*(3+4)
.Il en est de même avec les parenthèses autour de x et y. Si nous avions le code :
l'interpréteur de macro produirait à partir de
#define ADD(x,y) (x+y)
l'interpréteur de macro produirait à partir de
ADD(2,+3)
le code C (2++3)
qui ne compile pas alors que ((2)+(+3))
compile.