查看源代码 问题示例
描述
一个常见的互操作性场景是,当你想在你的 Erlang 程序中整合一段解决复杂问题的代码时。例如,假设你有以下 C 函数,你想从 Erlang 中调用它们
/* complex.c */
int foo(int x) {
return x+1;
}
int bar(int y) {
return y*2;
}
为了便于阅读,这些函数被刻意保持得尽可能简单。
从 Erlang 的角度来看,最好能够调用 foo
和 bar
,而无需关心它们是 C 函数
% Erlang code
...
Res = complex:foo(X),
...
在这里,与 C 的通信隐藏在 complex.erl
的实现中。在接下来的章节中,将展示如何使用不同的互操作性机制来实现此模块。