首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在方法签名中注释指向C字符数组的指针?

如何在方法签名中注释指向C字符数组的指针?
EN

Stack Overflow用户
提问于 2019-07-17 21:40:29
回答 1查看 275关注 0票数 2

我正在用Python为C库编写一个包装器。我试图正确地注释所有的方法,这样我的IDE就可以帮助我捕获错误。我被困在注释一个方法,你能帮我找出正确的注释吗?

C库中的一种方法的工作如下:

  1. 获取一个arg:指向字符缓冲区的指针
代码语言:javascript
运行
复制
- Buffer is made via: `char_buffer = ctypes.create_string_buffer(16)`

  1. 使用输出值填充char缓冲区。
代码语言:javascript
运行
复制
- Done via `CMethod(char_buffer)`

然后,通过执行类似于char_buffer.value的操作来解析缓冲区。

如何注释包装器方法以查找指向字符缓冲区的指针?目前,我有以下内容,但我认为这是不正确的,因为POINTER似乎只是_ctypes.py中的一个函数。

代码语言:javascript
运行
复制
from ctypes import POINTER

def wrapped_method(char_buffer: POINTER):
    CMethod(char_buffer)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-19 21:03:27

根据尺寸,size=None)

此函数创建一个可变字符缓冲区。返回的对象是字符的ctype数组。

示例:

导入ctype >>> >>> CharArr16 = ctypes.c_char * 16 >>> s= ctypes.create_string_buffer(16) >>> >>> isinstance(s,CharArr16) True >>> isinstance(s,ctypes.c_char * 15) False >>> isinstance(s,ctypes.c_char * 17) False >>> >>> #A更通用的表单,但对于非数组实例(s,s._type_ * >>> ) True CharArr16#一个更通用的形式.issubclass(,) True isinstance(s,( ctypes.Array)真

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57084381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档