On 01/19/2016 05:21 PM, Alexey Kardashevskiy wrote:
You could drop the redundant () while touching this, as in:
Seriously? Why? I personally find it really annoying (but I stay silent)
when people omit braces in cases like this.
assert(token >= RTAS_TOKEN_BASE && token < RTAS_TOKEN_MAX);
Because it's the prevailing style. I estimate that less than 10% of qemu
over-parenthesizes, mostly because && and || are well-known C operator
precedence:
$ git grep ' && ' | wc
6462 57034 482477
$ git grep ') && (' | wc
578 6151 48655
Of course, that's a rough estimate, as it has false positives on 'if
(foo() && (b || c))', and false negatives on conditionals where there is
a unary rather than binary operator on either side of &&; but I'm sure
you could write a Coccinelle script if you wanted more accurate counting.
But you are equally right that as long as HACKING doesn't document it,
and checkpatch.pl doesn't flag it, then you can over-parenthesize binary
arguments to the short-circuiting operators to your aesthetic tastes.
And for other operators, like '&' and '|', I definitely recommend the
parenthesis, particularly if you manage to trigger a gcc or clang
warning (in spite of the precedence being unambiguous) if you omit the
parenthesis.