On Mon, May 11, 2009 at 5:22 PM, Robert P. J. Day <[email protected]> wrote:
> On Mon, 11 May 2009, Bob Beers wrote:
>
>> On Mon, May 11, 2009 at 5:00 PM, RT Mistler <[email protected]> wrote:
>> > Hi,
>> >
>> > I've been looking at some kernel modules trying to map an embedded
>> > devices resources and while going through a driver, I encountered an
>> > "if" test that employed "!!", example:
>> >
>> > if !!function_foo(args) {
>> >  ...
>> > }
>> >
>> > What does the "!!" do? (I'm familiar with a single "!")
>>
>> IIANM, it does "!" and then does "!" again, forcing boolean value,
>> true or false.
>
>  it's not clear why that would make any difference since 0 is boolean
> false and everything else is boolean true.  so under what
> circumstances would doing a double negation change execution
> behaviour?  or am i missing something?
>

Well, the OP's example is not a real example from the kernel source.
A usage I can imagine is where one requires a *boolean* value,
 not just "0" or "not 0".  This usage, "!!", provides that conversion, no?

-Bob

--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to [email protected]
Please read the FAQ at http://kernelnewbies.org/FAQ

Reply via email to