C如下:
#include "stdio.h"
float floatadd(float a,float b);
float floatadd(float a,float b){
return a+b;
}
对该C语言运行gcc name.c -fPIC -shared -o name.so
Python如下:
import ctypes
a=ctypes.CDLL(r'/home/user/vscode_files/ccc.so')
b=ctypes.c_float(3.2)
c=ctypes.c_float(5.6)
f=a.floatadd
f.restype=ctypes.c_float
f2=a.floatadd(b,c)
print(f2)
注意,如果是int型计算,不需要进行类型转换。但如果是如上这种float,需要进行一步restype。否则会出现 don’t know how to transfer parameter 1 类似这样的报错。