cpp.info: Elif

Go backward to Else
Go up to Conditional Syntax
Go to the top op cpp

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'.