Difference between revisions of "$IF"
From Lazarus wiki
Jump to navigationJump to searchLine 1: | Line 1: | ||
{{$IF}} | {{$IF}} | ||
− | The <syntaxhighlight lang="pascal" | + | The <syntaxhighlight lang="pascal" inline>{$if …}</syntaxhighlight> directive can be used in [[Conditional compilation|conditional compilation]]. |
<syntaxhighlight lang="pascal" highlight="2,5"> | <syntaxhighlight lang="pascal" highlight="2,5"> | ||
Line 11: | Line 11: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | Also, enable you to write complex conditions that you cannot do with the <syntaxhighlight lang="pascal" | + | Also, enable you to write complex conditions that you cannot do with the <syntaxhighlight lang="pascal" inline>{$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: |
Latest revision as of 17:12, 6 August 2022
│
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 |