ctypes中的LP_ *指针和* _p指针有什么区别?(以及与结构的怪异互动)

ctypes中的LP_ *指针和* _p指针有什么区别?(以及与结构的怪异互动),第1张

ctypes中的LP_ *指针和* _p指针有什么区别?(以及与结构的怪异互动)

http://docs.python.org/library/ctypes.html#ctypes.c_char_p

当C char *数据类型指向以零结尾的字符串时,表示它。对于也可能指向二进制数据的通用字符指针,必须使用POINTER(c_char)。

c_char_p
之所以映射到Python的
str
类型,是因为它假定您要引用一个字符串,通常
char*
在C语言中使用时就是
LP_c_char
这种情况。

基本数据类型在作为外部函数调用结果返回时,或者例如通过检索结构字段成员或数组项而返回时,将透明地转换为本机Python类型。换句话说,如果外部函数的重新类型为c_char_p,您将始终收到Python字符串,而不是c_char_p实例。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5143650.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-18
下一篇2022-11-17

发表评论

登录后才能评论

评论列表(0条)

    保存