三个步骤:
1、编写好c语言程序
2、将c程序编译成.so文件
3、编写python,使用python运行
写个很简单的demo:
第一步,写一个c语言文件实现两数字相加,文件名字叫add.c:
#include <stdio.h>
int add_int(int, int);
float add_float(float, float);
int add_int(int num1, int num2){
return num1 + num2;
}
float add_float(float num1, float num2){
return num1 + num2;
}
第二步,打开cmd,cd路径到add.c所在目录下方,然后输入:
gcc --shared -fpic -o add.so add.c
每个平台将c文件编译成so文件的命令都不同,我这个是windows下的命令。其它的例如Linux等OS命令请自行查询命令资料。
例如我的:
然后我们就能看到目录下生成了一个add.so文件
第三步,将so文件放到pycharm的python代码的目录下,并编写python代码 :
#coding utf-8
from ctypes import *
#-----方法1------
#加载编译好的so文件
adder = CDLL('./add.so')
#调用c文件的函数adder.add_int(),实现int类型数据相加
res_int = adder.add_int(4,5)
print ("Sum of 4 and 5 = " + str(res_int))
#----方法2----
#在python中定义c语言能识别的数据类型
a = c_float(5.5)
b = c_float(4.1)
#定义函数并且调用,实现相加
add_float = adder.add_float
add_float.restype = c_float
print("Sum of 5.5 and 4.1 = ", str(add_float(a, b)))
输出: