c - 如何在 C 中识别 OCaml 可扩展变体类型值?
问题描述
我有一个 OCaml 库,想在 C 中使用它。这个库有一个基于可扩展变体的错误管理系统。第 20 章 C 与 OCaml 的接口包含如何识别 C 中的变体类型值的描述(它取决于构造函数的顺序)。
以下示例说明了将整数和块标记分配给构造函数:
type t = | A (* First constant constructor -> integer "Val_int(0)" *) | B of string (* First non-constant constructor -> block with tag 0 *) | C (* Second constant constructor -> integer "Val_int(1)" *) | D of bool (* Second non-constant constructor -> block with tag 1 *) | E of t * t (* Third non-constant constructor -> block with tag 2 *)
如何在 C 中识别可扩展的变体类型值?
解决方案
推荐阅读
- python - 使用 PyQt5 正确凭据后“重定向”用户
- java - 拒绝对先前失败的类 java.lang.Class 重新初始化
: java.lang.NoClassDefFoundError - mysql - 检查mysql中重复行上是否存在值
- wordpress - 为什么我在 Wordpress Contact Form 7 上收到文件上传错误?
- c# - 使用作为参数传递给内部匿名函数C#中的函数的对象
- javascript - 使用javascript从数组中提取数据
- javascript - 我如何插入相同的(其中包含我的菜单)到所有其他 html 页面?
- python - RNN 模型只预测一个类别?
- security - 授权导入范围后是否可以浏览电子表格?
- html - 如何在 HTML 中设置两个内联图像?