Instructions ifdef ... elsifdef ... elsedef ... endifdef

La déclaration ifdef

le ifdefl'instruction est exécutée au moment de l'analyse et non au moment de l'exécution. Cela vous permet de modifier le fonctionnement de votre programme de manière très efficace.

Étant donné que l'instruction ifdef fonctionne au moment de l'analyse, les valeurs d'exécution ne peuvent pas être vérifiées, mais des définitions spéciales peuvent également être définies ou annulées au moment de l'analyse.

Syntaxe

La syntaxe de l' instruction ifdef est la suivante -

ifdef macro then
   -- Statements will execute if the macro is defined.
end if

Si l'expression booléenne a la valeur true, le bloc de code à l'intérieur de l'instruction if est exécuté. Sinon, le premier ensemble de code après la fin de l'instruction ifdef sera exécuté.

L' ifdef vérifie les macros définies en utilisantwith definemots clés. Il existe de nombreuses macros définies comme WIN32_CONSOLE, WIN32 ou LINUX. Vous pouvez définir vos propres macros comme suit -

with define    MY_WORD    -- defines

Vous pouvez dé-définir un mot déjà défini comme suit -

without define OTHER_WORD -- undefines

Exemple

#!/home/euphoria-4.0b2/bin/eui

with define DEBUG

integer a = 10
integer b = 20

ifdef DEBUG then
   puts(1, "Hello, I am a debug message one\n")
end ifdef

if (a + b) < 40 then
   printf(1, "%s\n", {"This is true if statement!"})
end if

if (a + b) > 40 then
   printf(1, "%s\n", {"This is not true if statement!"})
end if

Cela produit le résultat suivant -

Hello, I am a debug message one
This is true if statement!

Le ifdef ... elsedef Déclaration

Vous pouvez effectuer une action si une macro donnée est définie, sinon vous pouvez effectuer une autre action au cas où la macro donnée ne serait pas définie.

Syntaxe

La syntaxe de l' instruction ifdef ... elsedef est la suivante -

ifdef macro then
   -- Statements will execute if the macro is defined.
elsedef
   -- Statements will execute if the macro is not defined.
end if

Exemple

#!/home/euphoria-4.0b2/bin/eui

ifdef WIN32 then
   puts(1, "This is windows 32 platform\n")
elsedef
   puts(1, "This is not windows 32 platform\n")
end ifdef

Lorsque vous exécutez ce programme sur une machine Linux, il produit le résultat suivant -

This is not windows 32 platform

Le ifdef ... elsifdef Déclaration

Vous pouvez vérifier plusieurs macros en utilisant ifdef...elsifdef déclaration.

Syntaxe

La syntaxe de l' instruction ifdef ... elsifdef est la suivante -

ifdef macro1 then
   -- Statements will execute if the macro1 is defined.
elsifdef macro2 then
   -- Statements will execute if the macro2 is defined.
elsifdef macro3 then
   -- Statements will execute if the macro3 is defined.
   .......................
elsedef
   -- Statements will execute if the macro is not defined.
end if

Exemple

#!/home/euphoria-4.0b2/bin/eui

ifdef WIN32 then
   puts(1, "This is windows 32 platform\n")
elsifdef LINUX then
   puts(1, "This is LINUX platform\n")
elsedef
   puts(1, "This is neither Unix nor Windows\n")
end ifdef

Lorsque vous exécutez ce programme sur une machine Linux, il produit le résultat suivant -

This is LINUX platform

Tous les énoncés ci-dessus ont différentes formes qui vous offrent une flexibilité et une facilité d'utilisation en fonction de différentes situations.