On Mon, 15 Jun 2015 16:23:13 +0100 Jan Beulich wrote:
> >>> On 15.06.15 at 16:35, <andrew.coop...@citrix.com> wrote:
> > On 15/06/15 15:30, Don Slutz wrote:
> >> On 06/15/15 10:19, Andrew Cooper wrote:
> >>> Furthermore, what about devfn or reg?
> >>>
> >> devfn and reg do not need the bracketing since they are just passed,
> >> but I have no issue with adding the extra brackets.
> > 
> > Macros, under all circumstances, should have all of their parameters
> > bracketed for safety.
> 
> No, as this harms readability:
> 
> #define macro(x) function((x))
> 
> would completely pointlessly be having an extra set of parentheses.
> And
> 
> #define macro(x, y) function(x, y)
> 
> is just the logical extension to that: There is nothing the expressions
> passed as arguments could contain to require parenthesization, as
> there's no operator of precedence lower than comma (and if either
> argument contains a comma expression, it needs to be
> parenthesized at the invocation site anyway).

I think parenthesis are just long term guards against classic surprises
such as:

#define macro(x) function(x * 2)
...
macro(N + 3)

You could treat this case separately though, but people often go for the
"good practice".

-- 
Mihai Donțu

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to