Messages in this thread | | | Date | Fri, 23 May 2008 16:03:27 -0700 | From | "H. Peter Anvin" <> | Subject | Re: kernel coding style for if ... else which cross #ifdef |
| |
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
| |