Re: kernel coding style for if ... else which cross #ifdef
From: H. Peter Anvin
Date: Fri May 23 2008 - 19:13:37 EST
Steve French wrote:
A question splitting "else" and "if" on distinct lines vs. using an
extra line and extra #else came up as I was reviewing a proposed cifs
patch. Which is the preferred style?
#ifdef CONFIG_SOMETHING
if (foo)
something ...
else
#endif
if ((mode & S_IWUGO) == 0)
or alternatively
#ifdef CONFIG_SOMETHING
if (foo)
something ...
else if ((mode & S_IWUGO) == 0)
#else
if ((mode & S_IWUGO) == 0)
#endif
The former. Why? Because the latter case has unbalanced indentation:
to an editor, and to the human eye, it looks like the if in the #else
clause is a child to the "else if".
*However*, the best would really be if we changed Kconfig to emit
configuration constants what were 0/1 instead of undefined/defined.
That way we could do:
if (CONFIG_SOMETHING && foo) {
/* ... something ... */
} else if ((mode & S_IWUGO) == 0) {
/* ... */
... in many cases.
-hpa
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/