Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Parenthèses, dans une macro, autour d'une valeur numérique

4 réponses
Avatar
Thoma
Bonjour,

Je cherche à me rafraichir la mémoire. Un jour, quelqu'un m'a convaincu
qu'il était utile de mettre des parenthèses autour d'une valeur
numérique si elle était définie par une macro. Par exemple,

#define ZERO (0) /* Juste pour l'exemple */

Par contre, je ne me rappelle absolument plus de la justification.
Pourriez-vous me donner une raison, si elle existe bien évidemment ?

D'avance merci

Thoma

4 réponses

Avatar
Eric Levenez
Le 08/02/09 12:50, dans <498ec709$0$3512$, « Thoma »
a écrit :

Pourriez-vous me donner une raison, si elle existe bien évidemment ?



Faq §13.17

--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Avatar
Xavier Roche
Eric Levenez a écrit :
Pourriez-vous me donner une raison, si elle existe bien évidemment ?


Faq §13.17



Oui mais non, pas pour une simple valeur numérique. Dans ce cas
particulier il n'y a amha aucun interêt à parenthéser.
Avatar
Eric Levenez
Le 08/02/09 17:09, dans <gmn03q$9rc$, « Xavier Roche »
a écrit :

Eric Levenez a écrit :
Pourriez-vous me donner une raison, si elle existe bien évidemment ?


Faq §13.17



Oui mais non, pas pour une simple valeur numérique. Dans ce cas
particulier il n'y a amha aucun interêt à parenthéser.



Dans ce cas, oui, mais je pensais que l'OP parlait d'une valeur numérique en
général, et donc quelque chose comme 1 + 2.

--
Éric Lévénez
FAQ de fclc : <http://www.levenez.com/lang/c/faq/>
Avatar
Charlie Gordon
"Eric Levenez" a écrit dans le message de news:
C5B4C38D.E20CA%
Le 08/02/09 17:09, dans <gmn03q$9rc$, « Xavier Roche »
a écrit :

Eric Levenez a écrit :
Pourriez-vous me donner une raison, si elle existe bien évidemment ?


Faq §13.17



Oui mais non, pas pour une simple valeur numérique. Dans ce cas
particulier il n'y a amha aucun interêt à parenthéser.



Dans ce cas, oui, mais je pensais que l'OP parlait d'une valeur numérique
en
général, et donc quelque chose comme 1 + 2.



Les parentheses sont inutiles pour une simple valeur numérique en effet,
mais elles sont nécessaires pour les expressions numériques comme tu le fais
remarquer. Certaines expressions unaires comme +2 ou -1 sont souvent
interprétées par le lecteur non averti comme de simples valeurs numériques.
Ces expressions doivent être parenthésées pour éviter une mauvaise expansion
dans certains cas tordus (laissés au soin du lecteur à titre d'exercice ;-).
Donc il faut parenthéser les "valeurs négatives" comme toutes les autres
expressions.

/* exemple: */
#define MIN_VALUE (-1)
#define MAX_VALUE 1

--
Chqrlie.