On 11/17/2012 08:38 AM, Borislav Petkov wrote: > On Thu, Nov 15, 2012 at 01:11:15PM -0600, Daniel Santos wrote: >> Ah yes. I did notice that at one point, but I think it slipped >> my mind. Also, the kernel has introduced me to the usage of the >> !! construct, of which I'm well versed in its affects in various >> situations and how gcc's optimizer ends up treating its usage, so >> probably another reason I didn't change it immediately. But it's >> basically shorthand for the expression (condition ? 1 : 0), correct?
Oh, this is embarrassing, The sentence above should have read: ... the kernel has introduced me to the usage of the !! construct, of which I'm *not* well versed in ... hah! oh well > I don't think so: "!!" is simply a double negation which turns the > whatever wild construct you have into either 0 or 1, depending on what > it evaluates to. > > But I don't know what the standard says so you'll have to check :-) Here we go, from section ยง6.5.3.3: The result of the logical negation operator ! is 0 if the value of its operand compares unequal to 0, 1 if the value of its operand compares equal to 0. The result has type int. The expression !E is equivalent to (0==E). I simply wasn't aware that it promised a "true" value to be one exactly. Hurray for expanding horizons! :) Daniel -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/