ocaml - OCaml中的条件编译

标签 ocaml conditional-compilation

假设我有一个很长的算法,希望对其进行冗长的调试。到目前为止,我只是在代码周围添加了许多if verbose then printf "whatever",但是如果我不想在冗长的模式下使用它,这将强制代码执行许多无用的测试。

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

例如,我可以通过使用#IFDEF DEBUG printf .. #ENDIF在C中完成某些操作

最佳答案

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

camlp4o pa_macro.cmo -DFOO file.ml

在代码中,它看起来像这样:
let f x = IFDEF FOO THEN x + 1 ELSE x - 1 END;;

关于ocaml - OCaml中的条件编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3614894/

相关文章:

recursion - OCaml 中的内存和引用列表

OCamlbuild和camlp4选项

csv - Ocaml CSV 到 float 列表

types - ocaml 任何类型匹配

csv - 通过cmake用逗号定义值

delphi - 编译前验证文件版本是否正确

makefile - 在Makefile中使用条件规则

c++ - OCaml 中的快速位数组

windows - 基于操作系统的C++条件编译

c - 这些用于可移植性的 C#ifdef 是否过时了?