有什么语言可以与C++互操作吗

Any Language to interop with C++?

本文关键字:C++ 互操作 什么 语言      更新时间:2023-10-16

有什么现代语言可以直接与C/C++进行互操作吗?我的意思是直接像Java对Kotlin所做的那样。一种可以利用C/C++生态系统而不会对性能造成重大影响的语言。

我喜欢C/C++感兴趣的领域,但不喜欢这种语言。

存在C和C++的交集,这是两种语言的子集。在这个子集中编写的函数声明可以从任何一种语言调用。

C是事实上的互操作性语言,除了C++之外,大多数其他支持语言互操作性的高级语言都特别支持C。C以外的语言与C以外的其他语言的交互操作通常通过这两种语言的C接口。

由于C++中对C接口的高度支持,这种互操作性通常也可以在C++中得到利用,但接口仅限于公共子集中的特性。

您特别提到Java。这是一个与C.具有互操作层的语言示例


所有支持通用进程间通信(如套接字(的语言,通常都可以通过该通信与用任何语言编写的其他进程进行互操作。


我可以使用Java中的C++库吗。。。

如果库有一个用C的可互操作子集编写的接口,那么是的。如果包装器接口还不存在,就可以编写它。

。。。并期望具有与C/C++相同的性能?

外语接口可能有一些开销,Java端本身可能涉及在本机使用库时不存在的开销。这种开销是否显著,你可以通过测量来发现。例如,我希望它的开销小于套接字通信的开销。

此外,程序间优化可能是不可能的。在这方面,它类似于在本机C或C++中使用共享库。