Messages in this thread | | | Subject | Re: [PATCH] 2.4.22pre10: {,un}likely_p() macros for pointers | From | Albert Cahalan <> | Date | 11 Aug 2003 19:13:58 -0400 |
| |
On Mon, 2003-08-11 at 14:55, Andrew Morton wrote: > Albert Cahalan <albert@users.sourceforge.net> wrote: > > > > -#define likely(x) __builtin_expect((x),1) > > -#define unlikely(x) __builtin_expect((x),0) > > +#define likely(x) __builtin_expect(!!(x),1) > > +#define unlikely(x) __builtin_expect(!!(x),0) > > Odd. I thought we fixed that ages ago. > > Being a simple soul, I prefer __builtin_expect((x) != 0, 1).
That's much harder to read. The !! is a nice neat idiom. The other way requires a bit of thought. (is that == or !=, a 0 or 1, and what does that compute to?)
The !! is visually distinctive. It has only one use. When you see it, you instantly know that a value is being converted to the pure boolean form.
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |