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