3  问题示例

3  问题示例

一种常见的互操作性情况是,您希望将一段解决复杂问题的代码整合到您的 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 的实现中。在接下来的部分中,将展示如何使用不同的互操作性机制实现此模块。