Python3调用C程序(超详解)

Python3调用C程序(超详解)

Python3调用C程序(超详解)

Python为什么要调用C?

1.要提高代码的运算速度,C比Python快50倍以上

2.对于C语言里很多传统类库,不想用Python重写,想对从内存到文件接口这样的底层资源进行访问

Python调用C的方法:

Python调用C的方法通常有3种:

1.SWIG,编写一个额外的接口文件来作为SWIG(终端工具)的入口

2.通过CTypes调用

3.使用Python/C API方法

第一种方法大多数情况下会带来不必要的麻烦,我并没有试验,本文只针对2,3方法作详细说明

通过CTypes调用:

Python中的ctypes模块可能是Python调用C方法中最简单的一种。ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。

下面是python文件的代码:

from ctypes import * #pip ctypes库,并导入库

test = CDLL("./test.dll") #调用当前目录下叫test的dll文件,dll文件是C生成的动态链接库

result =test.sum(5,10) #调用库里的函数sum,求和函数

print(result) #打印结果

接下来用C语言编写dll动态链接库,这里使用VS:

单击头文件,新建项:

添加源文件:

在头文件test.h中加入如下代码:

#pragma once

#ifdef BUILD_TEST

#define API_SYMBOL __declspec(dllexport)

#else

#define API_SYMBOL __declspec(dllimport)

#endif

//宏定义,导出或者导入//

extern "C" API_SYMBOL int sum(int x, int y

相关数据流

《我的世界》哪个版本好玩?各类MC版本评价
365bet开户网址

《我的世界》哪个版本好玩?各类MC版本评价

⌚ 06-29 👁️‍🗨️ 5407
《我的世界》哪个版本好玩?各类MC版本评价
365bet开户网址

《我的世界》哪个版本好玩?各类MC版本评价

⌚ 06-29 👁️‍🗨️ 5407