有什么现代语言可以直接与C/C++交互吗?我的意思是,就像Java对Kotlin做的那样。一种可以利用C/C++生态系统而不影响性能的语言。
我喜欢C/C++感兴趣的领域,但不喜欢语言。
发布于 2019-11-07 18:09:20
C和C++存在一个交集,它是两种语言的子集。用这个子集编写的函数声明可以从两种语言中调用。
C是事实上的互操作性语言,除了C++之外,大多数其他支持语言互操作性的高级语言都特别支持C。而C以外的语言与C以外的语言之间的交互操作通常都是通过这两种语言的C接口进行的。
由于C++中对C接口的高度支持,这种互操作性通常也可以在C++中利用,但是接口仅限于公共子集中的特性。
您特别提到了Java。这是一种与C具有互操作性层的语言的例子。
支持一般进程间通信(例如套接字)的所有语言,通常都可以通过该通信与用任何语言编写的其他进程进行互操作。
我可以使用C++库.
如果库的接口是用C的可互操作子集编写的,那么是的。如果还不存在包装器接口,就可以编写它。
...并期望具有与C/C++相同的性能?
外国语接口可能有一些开销,而Java端本身可能会涉及到在本机使用库时不存在的开销。这种开销是否很大,您可以通过测量来确定。例如,我希望它小于套接字通信的开销。
此外,过程间优化可能是不可能的。在这方面,它类似于在本机C或C++中使用共享库。
https://stackoverflow.com/questions/58754477
复制相似问题