Python 编程语言中C API的包装器
我在一些编程语言中遇到了一个特性,可以在其他编程语言中调用方法。它被称为Python 编程语言中C API的包装器,python,c,cross-language,Python,C,Cross Language,我在一些编程语言中遇到了一个特性,可以在其他编程语言中调用方法。它被称为外部功能接口。例如,我可以在Python程序中调用C语言函数。或者我可以用Python语言为一些C库编写一个包装器,供其他Python用户使用 一个简单的例子是Python中的ctypes。因此,使用这个,我可以访问libc中的time函数。我理解到这个程度。然而,我无法清楚地了解这个ctypes本身是如何实现的以及其他“幕后”的事情 我在这里遇到的问题是: 这种语言的编译器需要什么样的功能才能使用外部函数接口。因为它也应该
外部功能接口
。例如,我可以在Python程序中调用C语言函数。或者我可以用Python语言为一些C库编写一个包装器,供其他Python用户使用
一个简单的例子是Python中的ctypes
。因此,使用这个,我可以访问libc中的time
函数。我理解到这个程度。然而,我无法清楚地了解这个ctypes本身是如何实现的以及其他“幕后”的事情
我在这里遇到的问题是:
VM必须有适当的工具来加载编译的目标代码。这是一个完全合理的问题。这个问题很难回答,因为它太笼统了。如果您专门谈论python和C,那么简单的答案是“python知道如何在堆栈上布局参数并跳转到表示已编译C函数的内存”。但shar寻找的很多答案都是针对具体实现的。至少指出一些关于这个主题的好资源可以帮助我理解这是一个完全合理的问题。这个问题很难回答,因为它太笼统了。如果您专门谈论python和C,那么简单的答案是“python知道如何在堆栈上布局参数并跳转到表示已编译C函数的内存”。但shar寻找的很多答案都是针对具体实现的。至少指出一些关于这个主题的好资源可以帮助我理解这是一个完全合理的问题。这个问题很难回答,因为它太笼统了。如果您专门谈论python和C,那么简单的答案是“python知道如何在堆栈上布局参数并跳转到表示已编译C函数的内存”。但是shar所寻找的很多答案都是针对具体实现的。至少指出一些关于这个主题的好资源将有助于我理解这是一个完全合理的问题。这个问题我