On Sep 6 2007 12:23, David Miller wrote: >> return copied ? : err; >> } >> >> Shouldn't this read: >> >> return copied ? copied : err; >> >> Or am I missing something? > >These two statements are equivalent, the first version is >a shorthand allowed by gcc.
Not only that. With x?x:z, x is evaluated twice, while with x?:z, x is only evaluated once. That's for stuff when you want to, say [dumb example follows], size_t my_read(..) { return read(..) ? : -1 } and the only other way would be to use a temporary, size_t my_read(..) { size_t x = read(..); return x ? x : -1; } gcc should be smart enough to also do optimization in the second case.. Jan -- - 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/