首页 > 代码库 > python调用c代码2
python调用c代码2
1、生成动态链接库
[root@typhoeus79 c]# more head.c #include <stdio.h>#include <stdlib.h>typedef struct _point{ int x; int y;}Point;Point * InitPoint(int x,int y){ Point *p = (Point *)malloc(sizeof(Point)); p->x = x; p->y = y; return p;}Point * Incre(Point * p){ p->x = p->x + 1; p->y = p->y + 1; return p;}gcc -fPIC -shared -o libhead.so ./head.c
python调用
[root@typhoeus79 ice_test_m c]# more test.py #!/usr/bin/env python2.7#-*- coding:utf-8 -*-from ctypes import *class Point(Structure): _fields_ = [("x",c_int),("y",c_int)]if __name__ == ‘__main__‘: ddl = CDLL("./libhead.so") ddl.InitPoint.restype = POINTER(Point) p = ddl.InitPoint(5,6); print p.contents.x print p.contents.y[root@typhoeus79 ice_test_m c]# ./test.py 56
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。