ifdef ... elsifdef ... elsedef ... endifdef Dichiarazioni
L'istruzione ifdef
Il ifdefL'istruzione viene eseguita in fase di analisi non in fase di esecuzione. Ciò consente di modificare il modo in cui il programma funziona in modo molto efficiente.
Dal momento che l'istruzione ifdef funziona in fase di analisi, i valori di runtime non possono essere controllati, ma anche definizioni speciali possono essere impostate o annullate in fase di analisi.
Sintassi
La sintassi dell'istruzione ifdef è la seguente:
ifdef macro then
-- Statements will execute if the macro is defined.
end if
Se l'espressione booleana restituisce true, viene eseguito il blocco di codice all'interno dell'istruzione if. In caso contrario, verrà eseguita la prima serie di codice dopo la fine dell'istruzione ifdef.
L' ifdef controlla le macro definite utilizzandowith defineparole chiave. Ci sono molte macro definite come WIN32_CONSOLE, WIN32 o LINUX. Puoi definire le tue macro come segue:
with define MY_WORD -- defines
Puoi annullare la definizione di una parola già definita come segue:
without define OTHER_WORD -- undefines
Esempio
#!/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
Questo produce il seguente risultato:
Hello, I am a debug message one
This is true if statement!
L'ifdef ... elsedef Statement
È possibile eseguire un'azione se una determinata macro è definita, altrimenti è possibile eseguire un'altra azione nel caso in cui una determinata macro non sia definita.
Sintassi
La sintassi dell'istruzione ifdef ... elsedef è la seguente:
ifdef macro then
-- Statements will execute if the macro is defined.
elsedef
-- Statements will execute if the macro is not defined.
end if
Esempio
#!/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
Quando esegui questo programma su una macchina Linux, produce il seguente risultato:
This is not windows 32 platform
L'ifdef ... elsifdef Statement
Puoi controllare più macro usando ifdef...elsifdef dichiarazione.
Sintassi
La sintassi dell'istruzione ifdef ... elsifdef è la seguente:
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
Esempio
#!/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
Quando esegui questo programma su una macchina Linux, produce il seguente risultato:
This is LINUX platform
Tutte le dichiarazioni di cui sopra hanno varie forme che forniscono flessibilità e facilità d'uso in base a diverse situazioni.