使用ctypes

时间:2017-10-18 17:06:26

标签: python c macos ctypes

我试图通过ctypes从python脚本调用C函数,但我做错了。我写了一个最小的例子来展示我正在做的事情:

C代码:

#include <stdio.h>    

float distance(float ab[]){
 return fabs(ab[0]-ab[1]);
}

我将其保存为c_library.c,然后使用cc -fPIC -shared -o c_library.so c_library.c进行编译。

Python代码:

import ctypes
_c = ctypes.CDLL('c_library.so')
_c.distance.argtypes = [ctypes.POINTER(ctypes.c_float)]

def distance(ab):
    array_type = ctypes.c_float * 2
    return float(_c.distance(array_type(*ab)))

print(distance(np.array([1.0,3.0])))

当我执行它时,我得到0.0作为输出。我做错了什么?

0 个答案:

没有答案