我正在创建一个ctype结构。我有一个外部函数,它需要一个指向这个结构的指针传递给它。ctype结构中应该有一个void指针。在
功能原型示例:ExtFunc(
TestStruct* myVoidStruct
);
其中,我的C-等价结构定义如下:
^{pr2}$
我试图创建这样一个结构,但是Python总是将void指针解释为void指针以外的东西。在
这有什么影响,如果有的话?这是否意味着外部函数也将结构的这个元素解释为空指针以外的东西?在>>> class TestStruct(ctypes.Structure):
_fields_ = [("voidField", ctypes.c_void_p)]
>>> x = TestStruct()
一开始,虚空场就成了一个非类型>>> type(x.voidField)
但是,我可以在结构外部创建并维持一个空指针:>>> y = ctypes.c_void_p(123)
>>> y
c_void_p(123L)
如上所述,我将结构传递给外部函数。当函数完成时,结构元素的类型为“long”,并有一个关联的值>>> x.voidField
88145984L
>>> type(x.voidField)
为什么现在它是一个长型的?它的价值意义何在?这是指针的内存地址吗?指针指向的内存地址?还是它指向的内存地址的前几个字节的值?在