5.Python对应C的结构体,联合体
2019-11-25 09:12
169 查看
-
结构体
一般结构体都继承自这几个类。
BigEndianStructure, LittleEndianStructure,Structure
然后属性名为
_fields_
的集合,集合的单个元素是一个二元组。python
代码from ctypes import * class Test(Structure): _fields_ = [("a",c_int),("b",c_int)] handle = CDLL("./test.dll") handle.test.restype = Test handle.test.argtypes= [c_int] ret = handle.test(2) print(ret.a,ret.b) """ 1 2 hello test2 [Finished in 0.1s] """
C++
代码#include<stdio.h> struct Test { int a; int b; Test(int x = 1,int y = 2) { a = x; b = y; } }; extern "C" Test test(int n) { printf("hello test%d\n",n); return Test(); }
编译代码
g++ -shared -fPIC -m32 -o test.dll test.cpp
-
结构体指针 byref(struct),生成一个指针,一般用作传入参数。
pointer(struct),生成一个指针,这个是用来直接生成的,类似 int* = (&int_var).常用于生成一个指针
POINTER(type)(init_value),常用语生成一个数组。
生成数组长度为1的指针POINTER(c_int)(c_int(0))
生成数组长度为n的指针POINTER(c_int)( (c_int*n)()),类比C++的POINTER<c_int>(new c_int
()) -
对齐方式
通过属性
_pack_
设置,和#param pack()
一样。正整数。
相关文章推荐
- Python Pandas 二维数据处理与 T-SQL 对应关系
- 共用体(联合体)与结构体的区别
- 结构体和联合体
- 结构体&&联合体--又来搞基
- 【Python】【Shell】把txt文档中文件名对应的文件cp到其他文件夹
- 结构体内嵌联合体的内存占用
- python获取字母在字母表对应位置的几种方法及性能对比较
- 查看Anaconda版本、Anaconda和python版本对应关系和快速下载
- 结构体(struct)、联合体(union)、枚举(enum) 三种结构的区别及各个结构细节的总结
- python之win32下,枚举进程,线程和线程对应的窗口的利用ctypes实现
- 结构体,联合体,内存分配
- Saltstack API以及对应的Python模板
- (四)C语言基础(结构体,联合体,枚举,别名)
- 联合体嵌套结构体
- 指针、结构体、联合体的安全规范
- python 寻找list中最大元素对应的索引
- 序列中对应列的值相加 分类: python 小练习 2013-12-05 19:09 293人阅读 评论(0) 收藏
- 关于结构体,联合体,位字段的大小的
- Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
- 结构体、联合体的应用,以及字节对齐和字节序的问题