ifdef...elsifdef...elsedef...endifdef 語句


ifdef 語句:

ifdef 語句執行在分析時不執行。這可以讓你改變了你的程式執行在一個非常有效的方式。

ifdef語句在分析時,執行時的值不能被選中,而不是特殊的定義可以設定或取消設定以及在分析時。

語法:

 ifdef 語句的語法是:

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

if 布林表示式的值為true,那麼裡面的程式碼塊,如果語句會被執行。如果沒有ifdef 語句結束後第一套程式碼將被執行。 

ifdef 檢查用定義關鍵字定義的巨集。像WIN32_CONSOLE,WIN32或LINUX的巨集定義有很多,你可以定義自己的巨集如:

with define    MY_WORD    -- defines

你可以未定義已定義的詞如下:

without define OTHER_WORD -- undefines

例子:

#!/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

這將產生以下結果:

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

ifdef...elsedef 語句:

如果巨集定義,否則可以採取其他操作的情況下給巨集沒有定義,可以把一個動作。

語法:

 ifdef...elsedef 語法如下:

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

例子:

#!/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

當在我的Linux機器上執行此程式,它會產生以下結果:

This is not windows 32 platform

ifdef...elsifdef 語句:

您可以選中多個巨集使用 ifdef...elsifdef 語句。

語法:

 ifdef...elsifdef 語句的語法是:

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

範例:

#!/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

當在Linux機器上執行此程式,它會產生以下結果:

This is LINUX platform