0
def t(n):
print(n)
t(byref(c_int(5)))
打印<cparam 'P' (0000019607137590)>
ctypes的爲int具有可變轉換通過參考分配
如何可以轉換上述打印行到一個python int
?所以它只會打印5
我試過c_int(n).value
,但並沒有削減它。
def t(n):
print(n)
t(byref(c_int(5)))
打印<cparam 'P' (0000019607137590)>
ctypes的爲int具有可變轉換通過參考分配
如何可以轉換上述打印行到一個python int
?所以它只會打印5
我試過c_int(n).value
,但並沒有削減它。
byref
用於(快速)傳遞到C級功能;如果您需要在Python層使用指針,請使用pointer
(很慢,但可以在Python中訪問);爲指針類型,取消引用與索引(因爲這是一個單值,它是[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
s爲參考,所以你可以只這樣做:
def t(n):
print(n.value)
t(c_int(5))
而且從n.value
分配或閱讀會改變調用者的c_int
。