ternary vs double exclamation

Valdis.Kletnieks at vt.edu Valdis.Kletnieks at vt.edu
Sun Jan 4 20:17:15 EST 2015


On Sun, 04 Jan 2015 18:43:22 -0500, John de la Garza said:
> On Sat, Jan 03, 2015 at 11:20:29PM -0500, Valdis.Kletnieks at vt.edu wrote:
> > On Sat, 03 Jan 2015 18:54:00 -0500, John de la Garza said:
> >
> > > It should not be assumed that true will always be 1 as defined in
> > > include/linux/stddef.h, right?
> >
> > No, I mean use an actual 'bool' type rather than 'int'.  Consider this from
> > kernel/softirq.c:
>
> yes, bool has two possible values true and false
>
> from include/linux/stddef.h:
> enum {
> 	        false   = 0,
> 		true	= 1
> };

Note that's an *anonynous* enum, which defines the two values, but
it *doesn't* define an enum type that can be used to force type safety.

No, if you're converting a variable from int to bool, the *important* line is
from include/linux/types.h:

typedef _Bool                   bool;

which ensures more type safety than the enum does.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 848 bytes
Desc: not available
Url : http://lists.kernelnewbies.org/pipermail/kernelnewbies/attachments/20150104/faeeeb5a/attachment.bin 


More information about the Kernelnewbies mailing list