今天的许多编程语言都基于C;比如C ++,C#,Java,Objective-C。那我可以用C ++代码调用C方法吗?或者从Java或C#调用C?或者这个目标是否达不到和不合理?请为我和其他人的理解提供快速代码示例。
答案 0 :(得分:5)
C ++,C#,Objective-C和Java都可以调用C例程。以下是一些链接,它们将概述从您询问的每种语言调用C所需的过程。
答案 1 :(得分:2)
从C ++调用C的示例。将此C函数保存在名为a.c:
的文件中int f() {
return 42;
}
并编译它:
gcc -c a.c
将产生一个名为a.o的文件。现在在名为main.cpp的文件中编写C ++程序:
#include <iostream>
extern "C" int f();
int main() {
std::cout << f() << std::endl;
}
并编译并链接:
g++ main.cpp a.o -o myprog
将生成一个名为myprog的可执行文件,在运行时打印42。
答案 2 :(得分:1)
在Java中调用C方法...
有一个关键字“native”,你可以在其中编写与机器相关的C代码并从Java调用它....
基本上它会创建一个DLL文件..然后你必须在你的程序中加载它......
一个很好的例子here ....
答案 3 :(得分:0)
要从Java调用C方法,有多个选项,包括:
答案 4 :(得分:0)
要从Java调用C / C ++,还要看一下BridJ(它就像带有C ++的JNA和更好的性能)。