是否可以一次为多个指令定义 $IFDEF ?
Posted
技术标签:
【中文标题】是否可以一次为多个指令定义 $IFDEF ?【英文标题】:Is it possible to define $IFDEF for more than one directive at once?是否可以一次为多个指令定义 $IFDEF ? 【发布时间】:2012-02-02 05:36:09 【问题描述】:是否可以在一个 $IFDEF 指令中定义多个条件? 我想要这样的语法:
$IFDEF Condition1 OR Condition2 DoSomething; $ENDIF
$IFDEF Condition1 AND Condition2 DoSomethingElse; $ENDIF
谢谢
【问题讨论】:
【参考方案1】:您需要改用$IF
:
$IF Defined(Condition1) or Defined(Condition2)
DoSomething;
$IFEND
【讨论】:
谢谢,这正是我所需要的。我猜您不仅是首席开发人员,还是您公司的构建经理,不是吗? @MartinReiner,同时也是总裁、总干事和高级看门人;-)【参考方案2】:如果您必须支持旧的 Delphis(不支持 $IF 元指令),您可以使用一种简单而丑陋的解决方法:
//AND
$IFDEF Cond1$IFDEF Cond2DoSomething$ENDIF$ENDIF
//OR
$UNDEF Cond1OrCond2
$IFDEF Cond1$DEFINE Cond1OrCond2$ENDIF
$IFDEF Cond2$DEFINE Cond1OrCond2$ENDIF
$IFDEF Cond1OrCond2DoSomething$ENDIF
如果你多次重复测试,第一种情况应该改写如下。
$UNDEF Cond1AndCond2
$IFDEF Cond1$IFDEF Cond2$DEFINE Cond1AndCond2$ENDIF$ENDIF
$IFDEF Cond1AndCond2DoSomething$ENDIF
【讨论】:
在这种情况下旧的 delphis 是 D5 和旧的 IIRC【参考方案3】:嘿,试试这个embarcadero.com
begin
...
$IF Defined(MY_DEFINE) and (LibVersion > 2.0)
Writeln(1);
$ELSE
Writeln(2);
...
$IFEND
end;
【讨论】:
以上是关于是否可以一次为多个指令定义 $IFDEF ?的主要内容,如果未能解决你的问题,请参考以下文章