#ifdef LINUX
linux code
#else
default unix code
#endif
instead of the much cleaner
if(LINUX)
linux code
else
default unix code
In early days the latter would have cluttered precious memory
with unfreachable code, but now we have optimizing compilers
that will excise the useless branch just as effectively as cpp.
Plan 9 refreshingly evicted this nonsense from the native compilers (mostly) and the code
base.[1]
I remember reading a Usenet post from the mid-late 80s that showed a roughly 40 line
sequence of #foo hell from some bit of SVRx code. There wasn't a single line of
actual C there. That it involved conditionalizing around the tty/termio drivers and some
machine-specific ioctl goop ... well, let's not go *there*.
It might have been posted as an example for the Obfuscated C Contest. It certainly could
have won. (Assuming an entry without any actual C code was eligible. Vague memories say
anything that survived 'cc -o foo xxx.c [...]' was allowed.)
--lyndon
[1] Eliminating many binary APIs -- e.g. ioctl() -- in favour of textual ones, was a
stroke of genius. Not just with fileservers (/net et al), but also with things like
dial().