给定一个C代码,有没有办法可以使用其他语言如python来执行C代码。我想说的是,有很多模块是使用语言构建的,但也提供了通过不同语言的访问,有什么办法可以做到吗?
答案 0 :(得分:2)
当然,它在Python世界中被称为“扩展”。 official documentation is here。{{3}}。摘录摘录:
本文档介绍了如何编写 用C或C ++扩展的模块 带有新模块的Python解释器。 这些模块可以定义新功能 还有新的对象类型和它们 方法。该文件还描述了 如何嵌入Python解释器 另一个应用程序,用作 扩展语言。最后,它表明 如何编译和链接扩展 模块,以便它们可以加载 动态地(在运行时)进入 翻译,如果潜在的 操作系统支持这一点 特征
Python更简单的方法是使用ctypes
标准包在DLL中运行代码。
答案 1 :(得分:1)
很多方面。通常,这通常称为Foreign Function Interface。维基百科页面上有关Python的内容:
* The major dynamic languages, such as Python, Perl, Tcl, and Ruby,
所有提供对本机代码的轻松访问 用C / C ++(或任何其他语言)编写 语言服从C / C ++调用 约定)。 o Python还提供了Ctypes模块2 可以从共享加载C函数 库和DLL即时和 翻译简单的数据类型 自动在Python和C之间 语义。例如:
import ctypes libc = ctypes.CDLL('/lib/libc.so.6' ) # under Linux/Unix
t = libc.time(None) # equivalent C code: t = time(NULL)
print t
支持多种语言的流行选择是SWIG