跨语言调用具体有很多种形式
Python可以调用C/C++
C/C++也可以调用Python
Python调用C++比较常用
具体的实现方式也有很多种
Python调用C要使用ctypes
C语言不需要做任何修改
Python使用ctypes库
编译为so/DLL(不需要lib)动态库之后有两种加载方式
ctypes.CDLL('./libmath.so') libmath=ctypes.cdll.LoadLibrary('./libmath.so')
carea=libmath.area
csum_array.argtypes=(ctypes.POINTER(c_double),ctypes.c_uint)
carea.restype=ctypes.c_double
carea(ctypes.c_double(r))
定义一个数组(ctypes.c_int*3)(1,2,3)数组可以直接当指针用
这样的array可以直接变成list来访问
获取变量的指针ctypes.pointer(ctypes.c_double(1.0))
以上只是举个例子,不要这么写,常量的指针没有意义也很危险
就可以传递指针给C语言了
一般来说C语言的部分只做耗时的运算,只传递指针进去
不传递指针回来,也不要在C语言的部分做内存管理
运行C语言写的库,肯定也是需要C语言的基础运行环境的
并不是没有任何依赖,只是说这个依赖基本是个电脑就都有