6.5 #if and #elif
Syntax
#if condition
#elif condition
Description
All the following lines until the corresponding
#endif
, #else
, or #elif
are
conditionally assembled if condition is true (not equal to 0). Condition may be any integer
expression, including preprocessor macros, which are expanded. The preprocessor
recognizes the special operator #defined (name)
that returns 1 if the name is
defined and 0 otherwise. Any undefined symbols
used in condition are silently evaluated to 0.
Conditionals may be nested to arbitrary depth.
#elif
evaluates condition in the same manner as #if
,
except that it is only evaluated if no previous branch of a compound #if …
#elif
sequence has been evaluated to true.
Examples
#if 0
// code here is never included
#endif
#if defined(__ATmega48__) || defined(__ATmega88__)
// code specific for these devices
#elif defined (__ATmega169__)
// code specific for ATmega169
#endif // device specific code