Brent Fulgham <[EMAIL PROTECTED]> writes:

> One other thing that is probably not a problem, but
> caught my eye, is the way the conditional operator
> is used here:
> 
> +      ? (sblock->s_prealloc_blocks ?: EXT2_DEFAULT_PREALLOC_BLOCKS)
>                                     ^^^
> Will this construct (?:) result in the conditional passing
> a NULL to the ext2_new_block method?  On IBM's compiler
> for AIX this won't even compile.

This construct is a GNU C extension. a ?: b is equivalent to a ? a : b,
except that a is evaluated only once.

I.e. ?: behaves the way || would have behaved if C did the Right Thing ;)

Compare with lisp's (or a b) .

/Niels

Reply via email to