我正在尝试创建一个简单的脚本来测试在python脚本中调用C函数。
有解决方案使用ctypes(加载cdll包装器),但对于我的应用程序,我将加载这些脚本(使用微型python解释器)到MCU,它没有任何系统文件。
还有其他方法可以在python中调用C函数吗?
谢谢
使用ctypes时的示例代码:
C:
int our_function(int num_numbers, int *numbers) {
int i;
int sum;
for (i = 0; i < num_numbers; i++) {
sum += numbers[i];
}
return sum;
}
首先用gcc编译
蟒:
import ctypes
import sum
_sum = ctypes.CDLL('libsum.so')
_sum.our_function.argtypes = (ctypes.c_int, ctypes.POINTER(ctypes.c_int))
def our_function(numbers):
global _sum
num_numbers = len(numbers)
array_type = ctypes.c_int * num_numbers
result = _sum.our_function(ctypes.c_int(num_numbers), array_type(*numbers))
return int(result)