Re: Question about kernel module syntax !!

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, May 11, 2009 at 5:22 PM, Robert P. J. Day <rpjday@xxxxxxxxxxxxxx> wrote:
> On Mon, 11 May 2009, Bob Beers wrote:
>
>> On Mon, May 11, 2009 at 5:00 PM, RT Mistler <rtmistler@xxxxxxxxxx> 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 ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux