Re: double exclamation mark meaning ?

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

 



> Hi,
>
> # define likely(x)  __builtin_expect(!!(x), 1)
> # define unlikely(x)    __builtin_expect(!!(x), 0)
>
> I see these !! in the above expressions. Please explain me the
> meaning of those double exclamations. What is their significance ?
>

This is a kind of cast to a "bool".

After applying !!(x), the value will be either 0 or 1.
It's roughly equivalent to (((x) != 0) ? 1 : 0)

Regards.

-- 
Yann Droneaud
OPTEYA



_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


[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