Re: A pettiness question.

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

 



Vadim Lobanov wrote:

On Wed, 21 Sep 2005, Nick Warne wrote:

This give a enum of {0,1}. If test is not 0, !!test will give 1,
otherwise 0.

Am I right?
Yes.  I think of it as a "truth value" predicate (or operator).
Interesting.  I thought maybe this way was trick, until later I experimented.

My post here (as Bill Stokes):

http://www.quakesrc.org/forums/viewtopic.php?t=5626

So what is the reason to doing !!num as opposed to num ? 1:0 (which is more
readable I think, especially to a lesser experienced C coder).  Quicker to
type?

Some people also prefer the following form:
	num != 0
That one looks good for if-tests and such. But if you need
a 0 or 1 for adding to a counter, then

a += !!x;

looks much better than

a += (x != 0);

There is nothing special about !!.  Just learn to use it, it
is easy to understand/read, and saves typing.

Perhaps a "C-contructs FAQ" might be useful, for the benefit
of newbies and beginners.  It could document things like
the use of !!, common kernel macro tricks, when not to
use zero initializers, and so on.

Helge Hafting
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux