有没有可以直接与 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++ 中使用共享库类似。
| 归档时间: |
|
| 查看次数: |
853 次 |
| 最近记录: |