您的位置:首页 > 编程语言 > Python开发

7. Python与C之强制类型转换

2019-11-25 14:12 711 查看
  1. 数组与指针之间的转换

    ctypes的传入参数是类型严格的,如果声明的传入参数(通过argtypes声明)是一个POINTER(c_int)类型,活着是结构体内部定义的类型,那么这种情况下,只有类型严格一致才可以设置。

    from ctypes import *
    charptr = POINTER(c_char)
    arg_char = charptr((c_char*5)(*b'abac'))
    arg_char[0] = b's'
    cdll.msvcrt.printf(b"%s\n",arg_char)
  2. 非兼容类型的转换

    通过函数cast(src,to_type);和C语言一样。

    from ctypes import *
    charptr = POINTER(c_char)
    arg_char = charptr((c_char*5)(*b'\x0a\x0b\x0c\x0d'))
    cdll.msvcrt.printf(b"%#x\n",cast(arg_char,POINTER(c_int)).contents)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ctypes Python