ctypes python_对于python初学者,如何使用python定义联合(使用ctypes)

问题引发:如何使用python的工会?

我刚刚开始使用python,我想知道如何用python定义联合(使用ctypes)?希望我通过ctypes支持工会是对的。例如,以下c代码是如何在python中的

4786f82747374f60bee810fc909f2960

struct test

{

char something[10];

int status;

};

struct test2

{

char else[10];

int status;

int alive;

};

union tests

{

struct test a;

struct test2 b;

};

struct tester

{

char more_chars[20];

int magic;

union tests f;

};

Thx,如果其他人正在寻找相同的答案,则添加简单示例

37ea3fc0cdc24422beed3ada1c23ff6a

from ctypes import *

class POINT(Structure):

_fields_ = [("x", c_int),

("y", c_int)]

class POINT_1(Structure):

_fields_ = [("x", c_int),

("y", c_int),

("z",c_int)]

class POINT_UNION(Union):

_fields_ = [("a", POINT),

("b", POINT_1)]

class TEST(Structure):

_fields_ = [("magic", c_int),

("my_union", POINT_UNION)]

testing = TEST()

testing.magic = 10;

testing.my_union.b.x=100

testing.my_union.b.y=200

testing.my_union.b.z=300

解决方案

看一下ctypes教程:可以使用ctypes.Union类:

b6cc5b0115014dc7a670a0360380c966

class test(ctypes.Structure):

# ...

class test2(ctypes.Structure):

# ...

class tests(ctypes.Union):

_fields_ = [("a", test),

("b", test2)]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值