从Python调用的C函数发出返回值,需要使用Python的ctypes库。ctypes是一个Python库,允许Python程序调用C语言编写的函数。以下是一个简单的示例,展示了如何使用ctypes库从Python调用C函数并返回值。
首先,我们需要编写一个简单的C函数,用于计算两个整数的和:
#include <stdlib.h>
int add(int a, int b) {
return a + b;
}
接下来,我们将使用Python的ctypes库调用此C函数并返回值:
import ctypes
# 加载C库
lib = ctypes.CDLL('./libadd.so')
# 定义C函数的参数类型和返回值类型
lib.add.argtypes = (ctypes.c_int, ctypes.c_int)
lib.add.restype = ctypes.c_int
# 调用C函数并返回值
result = lib.add(3, 4)
print(result) # 输出:7
在这个示例中,我们首先使用ctypes库加载了C库(在本例中为libadd.so),然后定义了C函数的参数类型和返回值类型。最后,我们调用C函数并将返回值存储在变量result中。
需要注意的是,ctypes库只能在Python 3.x版本中使用。此外,在使用ctypes库时,需要确保C库的编译环境与Python的版本和操作系统兼容。
领取专属 10元无门槛券
手把手带您无忧上云