Define and undefine definitions while preprocessing
You can use the -ED and -EU options to create or remove definitions during preprocessing.
To create a global definition, use one of the following
forms of the -ED option:
- Use the -EDname syntax to define a Boolean
symbol, as follows:
esql -EDENABLE_CODE define_ex.ec
- Use the -EDname=value syntax
to define an integer constant, as follows:
esql -EDMAXLENGTH=10 demo1.ec
The -EDname is equivalent to the define preprocessor directive ($define or EXEC SQL define) with name at the top of your program.
To
remove or undefine a definition globally for the entire source file,
use the following syntax for the -EU option:
-EUname
The -EU option has a global effect over the whole file, regardless of other define directives for name.
Restriction: Do not put
a space between ED or EU and the symbol name.
As with the define and undef statements, the preprocessor processes the -ED and -EU options in stage 1 of preprocessing (before it preprocesses the code in your source file).
The following figure shows a code fragment that uses conditional
compilation (the ifdef and ifndef directives).
For the code fragment shown in ESQL/C excerpt that uses ifdef, ifndef,
and endif, the following esql command
line does not generate code because the command line undefines the
ENABLE_CODE definition for the entire source file:
esql -EUENABLE_CODE define_ex.ec