首页 > IT职业 > IT生活 > 〈详解〉Python3调用C程序
c与python对比
python不擅长"大量运算"任务;
python程序优势在于:编写简单,适合"IO密集型作业"(比如打开文件,下载图片,运行脚本).python作为知名的"胶水语言",快速实现"计算密集型作业"的方法就是"把c的代码拿过来直接用"!
.c后缀的文件编译为动态库文件(.so结尾)gcc 原文件名.c -shared -o 新文件名.so
以将c_dll.c编译为c_dll.so为例gcc c_dll.c -shared -o c_dll.so
from ctypes import *
变量名 = cdll.LoadLibrary("动态库文件路径")
result = cdll.LodaLibrary("./c_dll.so")
动态库引用.库函数(参数)
result.my_add(num)
c_add.py
import timefrom ctypes import *def main():
num = int(input("请输入整数值:"))
result = 0
start_time = time.time()
result = cdll.LoadLibrary("./c_dll.so")
result.my_add(num)
end_time = time.time()
print("总共用时%s"%(end_time-start_time))
if __name__ == "__main__":
main()
c_dll.c
#includevoid my_add(int num){long int result = 0;for (long int i=1; i
最终文件目录
python_add.py
import timedef main(): num = int(input("请输入整数值:")) result = 0 start_time = time.time() for i in range(num+1): result += i print("从1到%d累加的计算结果为%d"%(num,result)) end_time = time.time() print("总共用时%s"%(end_time-start_time)) if __name__ == "__main__": main()
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2349/viewspace-2804101/ ,如需转载,请注明出处,否则将追究法律责任。