- Euphoria Tutorial
- Euphoria - Home
- Euphoria - Overview
- Euphoria - Environment
- Euphoria - Basic Syntax
- Euphoria - Variables
- Euphoria - Constants
- Euphoria - Data Types
- Euphoria - Operators
- Euphoria - Branching
- Euphoria - Loop Types
- Euphoria - Flow Control
- Euphoria - Short Circuit
- Euphoria - Sequences
- Euphoria - Date & Time
- Euphoria - Procedures
- Euphoria - Functions
- Euphoria - Files I/O
- Euphoria Useful Resources
- Euphoria - Quick Guide
- Euphoria - Library Routines
- Euphoria - Useful Resources
- Euphoria - Discussion
ifdef...elsifdef...elsedef...endifdef 语句
ifdef 声明
ifdef语句在解析时执行,而不是运行时执行。这允许您以非常有效的方式改变程序的运行方式。
由于 ifdef 语句在解析时工作,因此无法检查运行时值,而是也可以在解析时设置或取消设置特殊定义。
句法
ifdef语句的语法如下 -
ifdef macro then -- Statements will execute if the macro is defined. end if
如果布尔表达式的计算结果为 true,则执行 if 语句内的代码块。如果没有,则执行 ifdef 语句结束后的第一组代码。
ifdef检查使用with Define关键字定义的宏。有很多宏定义,如 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
以上语句都有多种形式,可以根据不同的情况灵活方便地使用。
euphoria_branching.htm