2024-09-30 01:32:42 发布
网友
def t(n): print(n) t(byref(c_int(5)))
打印<cparam 'P' (0000019607137590)>
<cparam 'P' (0000019607137590)>
如何将上面的打印行转换为pythonint?这样它就可以简单地打印5
int
5
我试过使用c_int(n).value,但没有成功。在
c_int(n).value
byref用于(快速)传递到C级函数;如果您需要在Python层使用指针,请使用pointer(速度慢,但在Python中可访问);对于指针类型,可以使用索引取消引用(因为这是一个单值,它是[0]):
byref
pointer
[0]
def t(n): print(n[0]) # Or to get back the c_int without converting to Python int: # print(n.contents) t(pointer(c_int(5)))
但是,如果您只想在Python中传递c_int,那么不管怎样,c_int都是引用,所以您可以只执行以下操作:
c_int
分配给n.value或从中读取c_int将更改调用者的c_int。在
n.value
byref
用于(快速)传递到C级函数;如果您需要在Python层使用指针,请使用pointer
(速度慢,但在Python中可访问);对于指针类型,可以使用索引取消引用(因为这是一个单值,它是[0]
):但是,如果您只想在Python中传递
^{pr2}$c_int
,那么不管怎样,c_int
都是引用,所以您可以只执行以下操作:分配给
n.value
或从中读取c_int
将更改调用者的c_int
。在相关问题 更多 >
编程相关推荐