Elif
----
One common case of nested conditionals is used to check for more
than two possible alternatives. For example, you might have
#if X == 1
...
#else /* X != 1 */
#if X == 2
...
#else /* X != 2 */
...
#endif /* X != 2 */
#endif /* X != 1 */
Another conditional directive, `#elif', allows this to be
abbreviated as follows:
#if X == 1
...
#elif X == 2
...
#else /* X != 2 and X != 1*/
...
#endif /* X != 2 and X != 1*/
`#elif' stands for "else if". Like `#else', it goes in the middle
of a conditional group and subdivides it; it does not require a
matching `#endif' of its own. Like `#if', the `#elif' directive
includes an expression to be tested. The text following the `#elif' is
processed only if the original `#if'-condition failed and the `#elif'
condition succeeds.
More than one `#elif' can go in the same conditional group. Then
the text after each `#elif' is processed only if the `#elif' condition
succeeds after the original `#if' and all previous `#elif' directives
within it have failed.
`#else' is allowed after any number of `#elif' directives, but
`#elif' may not follow `#else'.