ifdef ... elsifdef ... elsedef ... endifdef Instruções
A declaração ifdef
o ifdefinstrução é executada em tempo de análise, não em tempo de execução. Isso permite que você altere a maneira como seu programa opera de maneira muito eficiente.
Uma vez que a instrução ifdef funciona no tempo de análise, os valores de tempo de execução não podem ser verificados; em vez disso, as definições especiais também podem ser definidas ou não definidas no tempo de análise.
Sintaxe
A sintaxe da instrução ifdef é a seguinte -
ifdef macro then
-- Statements will execute if the macro is defined.
end if
Se a expressão booleana for avaliada como verdadeira, o bloco de código dentro da instrução if será executado. Caso contrário, o primeiro conjunto de código após o final da instrução ifdef será executado.
O ifdef verifica as macros definidas usandowith definepalavras-chave. Existem muitas macros definidas como WIN32_CONSOLE, WIN32 ou LINUX. Você pode definir suas próprias macros da seguinte forma -
with define MY_WORD -- defines
Você pode indefinir uma palavra já definida da seguinte forma -
without define OTHER_WORD -- undefines
Exemplo
#!/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
Isso produz o seguinte resultado -
Hello, I am a debug message one
This is true if statement!
O ifdef ... elsedef Declaração
Você pode executar uma ação se a macro fornecida for definida, caso contrário, você pode executar outra ação caso a macro fornecida não esteja definida.
Sintaxe
A sintaxe da instrução ifdef ... elsedef é a seguinte -
ifdef macro then
-- Statements will execute if the macro is defined.
elsedef
-- Statements will execute if the macro is not defined.
end if
Exemplo
#!/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 você executa este programa em uma máquina Linux, ele produz o seguinte resultado -
This is not windows 32 platform
O ifdef ... elsifdef Declaração
Você pode verificar várias macros usando ifdef...elsifdef declaração.
Sintaxe
A sintaxe da instrução ifdef ... elsifdef é a seguinte -
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
Exemplo
#!/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 você executa este programa em uma máquina Linux, ele produz o seguinte resultado -
This is LINUX platform
Todas as afirmações acima possuem várias formas que proporcionam flexibilidade e facilidade de uso com base em diferentes situações.