python 调用c语言函数的方法

yipeiwu_com6年前Python基础

虽然python是万能的,但是对于某些特殊功能,需要c语言才能完成。这样,就需要用python来调用c的代码了

具体流程:

c编写相关函数 ,编译成库

然后在python中加载这些库,指定调用函数。

这些函数可以char ,int, float, 还能返回指针。

以下示例:

通过python调用c函数,返回"hello,world 字符串"

新建c语言文件 hello.c

touch hello.c

#include <stdio.h>

char *get_str()
{
  return "hello,world"
}

编译成库

gcc -o hello.so --share -fPIC hello.c

新建python脚本

touch test.py

from ctypes import *

dll = CDLL("./hello.so")
dll.get_str.restype = c_char_p
str = dll.get_str()
print(string_at(str, 11))

执行python脚本

[feng@arch python_c]$ python test.py 
hello,world

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python用户推荐系统曼哈顿算法实现完整代码

Python用户推荐系统曼哈顿算法实现完整代码

出租车几何或曼哈顿距离(Manhattan Distance)是由十九世纪的赫尔曼·闵可夫斯基所创词汇 ,是种使用在几何度量空间的几何学用语,用以标明两个点在标准坐标系上的绝对轴距总和。...

使用Flask集成bootstrap的方法

使用Flask集成bootstrap的方法

1. 下载flask-bootstrap pip install flask-bootstrap 2. 找到base.html文件 将site-packages\flask_b...

解决PyCharm import torch包失败的问题

Anaconda3-5.1.0-MacOSX-x86_64.pkg 下载安装后,附带安装了pytorch包。 需要将环境调整到新的python3.6目录下。 1、在Project Int...

Python文件和目录操作详解

Python文件和目录操作详解

一、文件的打开和创建 1、打开 复制代码 代码如下: open(file,mode): >>>fo = open('test.txt', 'r') >>&g...

Python实现计算对象的内存大小示例

本文实例讲述了Python实现计算对象的内存大小。分享给大家供大家参考,具体如下: 一般的sys.getsizeof()显示不了复杂的字典。 查看类中的内容: def dump(ob...