- Euphoria 教程
- Euphoria - 首页
- Euphoria - 概述
- Euphoria - 环境
- Euphoria - 基本语法
- Euphoria - 变量
- Euphoria - 常量
- Euphoria - 数据类型
- Euphoria - 运算符
- Euphoria - 分支
- Euphoria - 循环类型
- Euphoria - 流程控制
- Euphoria - 短路
- Euphoria - 序列
- Euphoria - 日期和时间
- Euphoria - 过程
- Euphoria - 函数
- Euphoria - 文件I/O
- Euphoria 有用资源
- Euphoria - 快速指南
- Euphoria - 库例程
- Euphoria - 有用资源
- Euphoria - 讨论
ifdef...elsifdef...elsedef...endifdef 语句
ifdef 语句
ifdef 语句在解析时执行,而不是在运行时执行。这允许你以非常有效的方式改变程序的操作方式。
由于 ifdef 语句在解析时工作,因此无法检查运行时值,而是可以在解析时设置或取消设置特殊定义。
语法
ifdef 语句的语法如下:
ifdef macro then -- Statements will execute if the macro is defined. end if
如果布尔表达式计算结果为真,则执行 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
广告