MHuiG

「看庭前花开花落,望天上云卷云舒」

# Python 如何调用 C

MHuiG

字数：386 字

时长：1 分钟

Python 语言特点：简单，明确，优雅，高效率，同时 Python 语言的可扩展性和可嵌入性很强，又被成为 “胶水语言”。但是 Python 语言有一个最大的缺点，便是运行速度慢，所以当你对速度有要求时，你可以用 C 语言来编写你的关键代码，或者当你希望某些算法不公开时，也可以把你的程序用 C 编写，然后在你的 Python 程序中使用它们。本文将介绍在 Python 程序中如何调用 C…

## 编写 C 语言代码

一个简单的 c 语言程序，实现了两个整数的加法运算

    #include <stdio.h>

    int sum(int a,int b){
        return a + b;
    }

## 生成 so 库文件

使用命令：

    gcc -fPIC -shared main.c -o lib.so

so 库文件不能跨平台使用，如果你在 Windows 下面生成的，便只能够在 Windows 下面使用，使用命令以后，生成后缀为.so 的库文件

## 编写 Python 程序来调用 C 语言

- 把 so 库文件放入我们的 Python 项目中
- 使用 ctypes 库中的 CDLL 来加载库 lib_main = CDLL (‘so 库文件路径’)
- 调用 C sum_value = lib_main.sum (10, 20)

    # ctypes的库
    from ctypes import *

    # 加载so库
    lib_main = CDLL('./lib.so')  # CDLL加载库

    sum_value = lib_main.sum(10, 20)

    print(sum_value)

最终得到结果 30

ctypes 库是 Python 提供的一个外部函数库，提供 C 语言兼容集中数据类型，可以允许调用 C 编译好的库，已下附上 ctypes 库官方文档：https://docs.python.org/3/library/ctypes.html

Python Python

Python

Python

发布于：2020年2月24日

更新于：2020年2月24日

JavaScript 反调试

总结一下关于 JavaScript 反调试技巧方面的内容。本文的目的是收集与 JavaScript 中的反调试有关的小窍门（其中一些已经被恶意软件或商业产品使用）。 对于 JavaScript ...

Npm 更换源

由于 npm 的源在国外，所以国内用户使用起来有很多不方便，比如拖慢下载速度。 如何使用有很多方法来配置 npm registry 地址，下面根据不同情境列出几种比较常用的方法。以淘宝 np...

推荐阅读
如何加密你的 Python 代码 Hive Kafka PDF NoSQL Django

留言区

本文目录
Are You A Robot?