我正在使用PyArray\u SimpleNew()将计算C程序转换为Python,以在C中创建numpy数组。但是,我收到警告
C4055:: from data pointer 'void *' to function pointer 'PyObject *(__cdecl *)
以下是相关代码的摘录:
PyObject* myArray=NULL;
npy_int nd=1;
npy_int dims[1]={10};
myArray=PyArray_SimpleNew(nd,dims,NPY_UINT64)
警告发生在最后一行。在google搜索了一些之后,它认为这是由于Numpy库中的一个不正确的实现违反了C标准。你知道吗
所以我的问题是
有人能解释一下这里发生了什么事吗?尤其是“空虚”从何而来? 2.这个警告在这个用例中真的很重要吗?压制它安全吗?你知道吗
一些参考:
http://docs.scipy.org/doc/numpy/reference/c-api.array.htmlPointer-type mismatch with PyArray_SimpleNew
好的,在深入研究PyArray\u SimpleNew()的Python源代码之后,Python似乎使用了一个嵌套的宏,在后台有一些函数回调。因此,编译器看到的是指向函数的指针,而不是PyObject*类型的正确返回值。这是一种非标准用法,您只能手动取消警告
相关问题 更多 >
编程相关推荐