2006/3/2, Leopoldo Ghielmetti <[EMAIL PROTECTED]>:
> Je préfère classer les macros en deux categories principales, les
> procedures et les fonctions.
>
> Les procedures sont celles qui se comportent comme n'importe quelle
> fonction C qui ne retourne pas de valeur et je les entoure par
> do{...}while(0) et les fonctions qui retournent des valeurs et qui sont
> simplement entourées par (...).
>
> Donc la classique MAX est une fonction car elle retourne une valeur et
> elle est simplement entourée de ():
> #define MAX(a,b) ((a)>(b)?(a):(b))
>
> La macro précédente MA_MACRO est une procédure car elle ne retourne pas
> de valeur, donc je l'entoure de do{}while(0).

C'est malin mais ça me paraît délicat à utiliser. En effet,
certaines macros modifient les paramètres et d'autres pas.
À l'inverse certaines macros sont utilisables dans des expressions
et d'autres pas.
Je pense que je serais vite embrouillé si je devais maintenir ceci.

Marc Mongenet
_______________________________________________
gull mailing list
[email protected]
http://lists.alphanet.ch/mailman/listinfo/gull

Répondre à