antispam21 at verizon.net
Mon May 11 16:54:14 CDT 2009
But how did you not get a 1 with a single '!'?
(From ANSI C: The result of the logical negation operator ! is 0 if the
value of its operand compares
unequal to 0, 1 if the value of its operand compares equal to 0. The
result has type int.
The expression !E is equivalent to (0==E).)
Arnout Vandecappelle wrote:
> On Wednesday 06 May 2009 17:49:28 Joel Sherrill wrote:
>> I am looking at warnings and wondered if someone
>> could figured this one out.
>> c/src/libchip/network/i82586.c:1722: warning: suggest parentheses around
>> operand of '!' or change '|' to '||' or '!' to '~'
>> The code is clearly questionable IMO. ;)
>> *IE_CMD_CFG_PROMISC(buf) = !!promiscuous | manchester << 2;
> This means (!!promiscuous) | (manchester << 2). It looks OK to me, though
> adding parenthases around as I did certainly makes things clearer.
> The !! is a trick to make sure you have a 1, not just any non-zero int.
More information about the rtems-users