【问题标题】:Conditional compiling in OCamlOCaml 中的条件编译
【发布时间】:2010-09-01 03:43:32
【问题描述】:

假设我有一个很长的算法,我希望可以选择详细地对其进行调试。到目前为止,我只是在代码周围添加了许多if verbose then printf "whatever",但这会强制代码执行许多无用的测试,如果我不想让它处于详细模式。

有没有办法获得一个简单的条件编译,如果设置了标志,可以忽略 printf 行?

例如,我可以在 C 中使用 #IFDEF DEBUG printf .. #ENDIF 执行的操作

【问题讨论】:

    标签: ocaml conditional-compilation


    【解决方案1】:

    您正在寻找的内容可以在camlp4 中找到。如果您包含预定义的宏,那么您可以在命令行上使用 -D 定义标志(和 -U 来取消它们):

    camlp4o pa_macro.cmo -DFOO file.ml
    

    在代码中是这样的:

    let f x = IFDEF FOO THEN x + 1 ELSE x - 1 END;;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-14
      • 1970-01-01
      • 2011-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多