Difference between revisions of "$IF"
From Lazarus wiki
Jump to navigationJump to searchJwdietrich (talk | contribs) (Template included) |
|||
(4 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{$IF}} | |
− | < | + | The <syntaxhighlight lang="pascal" enclose="none">{$if …}</syntaxhighlight> directive can be used in [[Conditional compilation|conditional compilation]]. |
− | |||
− | |||
− | |||
− | </ | ||
− | {{ | + | <syntaxhighlight lang="pascal" highlight="2,5"> |
+ | // pointermath directive did not exist prior FPC 3.0.0 | ||
+ | {$if FPC_VERSION > 2} | ||
+ | // pointer arithmetics is bad. very bad | ||
+ | {$pointermath off} | ||
+ | {$endif} | ||
+ | </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: | ||
+ | <syntaxhighlight lang="pascal" highlight="2,5"> | ||
+ | //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} | ||
+ | |||
+ | </syntaxhighlight> | ||
+ | |||
+ | {{Directives, Defines and Conditionals}} |
Revision as of 17: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 |