Eiffel的外部接口
1. 引言
Eiffel作为一种纯面向对象的编程语言,不仅提供了强大的内部功能,还支持与外部环境及其他编程语言(如C、C++)的交互和集成。这种外部接口机制使得Eiffel程序可以有效地利用其他语言编写的代码和资源。本文将详细介绍Eiffel的外部接口,涵盖外部例程的定义、外部签名的使用、外部文件的引用以及相关语义和有效性规则。
2. 外部例程
Eiffel允许定义外部例程,这些例程可以调用用其他语言编写的函数。外部例程的定义包括指定外部语言(如C或C++)以及外部例程的具体名称。以下是一个简单的外部例程定义示例:
external
C
alias
"extern void my_c_function(int x);"
do
-- Eiffel代码可以在这里调用外部函数
end
在这个例子中, my_c_function
是用C语言编写的函数,它接受一个整数参数 x
。通过 alias
子句,Eiffel可以知道如何调用这个外部函数。
2.1 外部语言
外部语言可以是已注册语言或未注册语言。已注册语言包括C、C++和动态链接库(DLL)。未注册语言可以是任意字符串,如 "Cobol"
,但不能保证特定的Eiffel环境会支持这些语言接口。已注册语言必须由Eiffel编译器支持。