我们可以使用ctypes模块从PYTHON程序中调用C函数。
在Python中调用C函数
它涉及以下步骤:
1.使用所需函数创建C文件(.c扩展名)
2.使用C编译器创建共享库文件(.so扩展名)。
3.在Python程序中,从共享文件创建ctypes.CDLL实例。
4.最后,使用格式{CDLL_instance}调用C函数。{function_name}({function_parameters})
。
第一步:创建带有部分函数的C文件
1#include <stdio.h>
2
3int square(int i) {
4 return i * i;
5}
我们有一个简单的C函数,它将返回一个整数的平方。我已将此函数代码保存在名为my_unctions.c的文件中。
第二步:创建共享库文件
我们可以使用以下命令从C源文件创建共享库文件。
1$ cc -fPIC -shared -o my_functions.so my_functions.c
第三步:从Python程序调用C函数
1>>> from ctypes import *
2>>> so_file = "/Users/pankaj/my_functions.so"
3>>> my_functions = CDLL(so_file)
4>>>
5>>> print(type(my_functions))
6<class 'ctypes.CDLL'>
7>>>
8>>> print(my_functions.square(10))
9100
10>>> print(my_functions.square(8))
1164
12>>>
如果更改C程序文件,则必须重新生成共享库文件。
结论
Python的默认实现是用C编程编写的,它被称为CPython。因此,在Python程序中使用C函数并不少见。在本教程中,我们学习了如何在python程序中轻松调用C函数。