Difference between revisions of "$IF"
From Lazarus wiki
Jump to navigationJump to search (Introduce the defined and undefined function inside {$if} directive and mix them with [and/or] logic operators.) |
|||
Line 12: | Line 12: | ||
Also, enable you to write complex conditions that you cannot do with the <syntaxhighlight lang="pascal" enclose="none">{$ifdef …}</syntaxhighlight>, | Also, enable you to write complex conditions that you cannot do with the <syntaxhighlight lang="pascal" enclose="none">{$ifdef …}</syntaxhighlight>, | ||
+ | |||
And there are two bool functions[defined/undefined] that can be mixedup with [and/or] logic operators, For example: | And there are two bool functions[defined/undefined] that can be mixedup with [and/or] logic operators, For example: | ||
<syntaxhighlight lang="pascal" highlight="2,5"> | <syntaxhighlight lang="pascal" highlight="2,5"> | ||
Line 24: | Line 25: | ||
//But with the {$IF} you can check conditions together: | //But with the {$IF} you can check conditions together: | ||
− | {$if defined(SOMETHING) and defined(SOMETHINGELSE)} simple and readabl instead of union {$IFDef}`s | + | {$if defined(SOMETHING) and defined(SOMETHINGELSE)}//simple and readabl instead of union {$IFDef}`s |
{$ModeSwitch advancedrecords} | {$ModeSwitch advancedrecords} | ||
{$endif} | {$endif} | ||
{$if defined(somthing) or defined(somethingelse)} | {$if defined(somthing) or defined(somethingelse)} | ||
− | // | + | //Whatever you need! |
{$endif} | {$endif} | ||
Revision as of 18:40, 25 May 2019
│
Deutsch (de) │
English (en) │
français (fr) │
русский (ru) │
The {$if …}
directive can be used in conditional compilation.
// pointermath directive did not exist prior FPC 3.0.0
{$if FPC_VERSION > 2}
// pointer arithmetics is bad. very bad
{$pointermath off}
{$endif}
Also, enable you to write complex conditions that you cannot do with the {$ifdef …}
,
And there are two bool functions[defined/undefined] that can be mixedup with [and/or] logic operators, For example:
//Befor you need write these conditions to check some conditions:
{$define SOMETHING}
{$define SOMETHINGELSE}
{$ifdef SOMETHING}//Union $IfDef to check multiple conditions
{$ifdef SOMETHINGELSE}
{$ModeSwitch advancedrecords}
{$endif}
{$endif}
//But with the {$IF} you can check conditions together:
{$if defined(SOMETHING) and defined(SOMETHINGELSE)}//simple and readabl instead of union {$IFDef}`s
{$ModeSwitch advancedrecords}
{$endif}
{$if defined(somthing) or defined(somethingelse)}
//Whatever you need!
{$endif}
{$if undefined(what) and defined(somethingelse)}
//Just for note, Another usage!
{$endif}
Directives, definitions and conditionals definitions |
---|
global compiler directives • local compiler directives Conditional Compiler Options • Conditional compilation • Macros and Conditionals • Platform defines |