查看源代码 问题示例

描述

一个常见的互操作性场景是,当你想在你的 Erlang 程序中整合一段解决复杂问题的代码时。例如,假设你有以下 C 函数,你想从 Erlang 中调用它们

/* complex.c */

int foo(int x) {
  return x+1;
}

int bar(int y) {
  return y*2;
}

为了便于阅读,这些函数被刻意保持得尽可能简单。

从 Erlang 的角度来看,最好能够调用 foobar,而无需关心它们是 C 函数

% Erlang code
...
Res = complex:foo(X),
...

在这里,与 C 的通信隐藏在 complex.erl 的实现中。在接下来的章节中,将展示如何使用不同的互操作性机制来实现此模块。