Mikroelektronika MIKROE-738 Datenbogen
![Mikroelektronika](https://files.manualsbrain.com/attachments/e0529b3b58069a916ad7bb89f7e9f5f0eda73421/common/fit/150/50/1b07b99aa3112e022a916b06db07f1f4f211e91d41878452d87c7638b1bf/brand_logo.gif)
262
mikoC PRO for PIC32
MikroElektronika
Conditional Compilation
Conditional compilation directives are typically used to make source programs easy to change and easy to compile
in different execution environments. The mikroC PRO for PIC32 supports conditional compilation by replacing the
appropriate source-code lines with a blank line.
All conditional compilation directives must be completed in the source or include file in which they have begun.
Directives #if, #elif, #else, and #endif
The conditional directives
#if
,
#elif
,
#else
, and
#endif
work very similar to the common C conditional statements.
If the expression you write after
#if
has a nonzero value, the line group immediately following the
#if
directive is
retained in the translation unit.
The syntax is:
#if constant_expression_1
<section_1>
[#elif constant_expression_2
<section_2>]
...
[#elif constant_expression_n
<section_n>]
[#else
<final_section>]
#endif
Each
#if
directive in a source file must be matched by a closing
#endif
directive. Any number of
#elif
directives
can appear between
#if
and
#endif
directives, but at most one
#else
directive is allowed. The
#else
directive, if
present, must be the last directive before
#endif
.
sections
can be any program text that has meaning to compiler or preprocessor. The preprocessor selects a single
section
by evaluating
constant_expression
following each
#if
or
#elif
directive until it finds a true (nonzero)
constant expression. The constant expressions are subject to macro expansion.
If all occurrences of constant-expression are false, or if no
#elif
directives appear, the preprocessor selects the text
block after the
#else
clause. If the
#else
clause is omitted and all instances of
constant_expression
in the
#if
block are false, no
section
is selected for further processing.
Any processed section can contain further conditional clauses, nested to any depth. Each nested
#else
,
#elif
, or
#endif
directive belongs to the closest preceding the
#if
directive.
The net result of the preceding scenario is that only one code
section
(possibly empty) will be compiled.