gpt4 book ai didi

python - Numpy CAPI PyArray_新 Visual Studio 警告 C4055

转载 作者:行者123 更新时间:2023-11-30 15:04:50 24 4
gpt4 key购买 nike

我正在使用 PyArray_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)

警告发生在最后一行。经过一番谷歌搜索后,发现这是由于 Numpy 库中的实现不当导致的,违反了 C 标准。

所以我的问题是,

1.谁能解释一下这里发生了什么?尤其是那个“void*”从哪里来?2.此警告在此用例中真的很重要吗?压制它会安全吗?

一些引用:

http://docs.scipy.org/doc/numpy/reference/c-api.array.html Pointer-type mismatch with PyArray_SimpleNew

最佳答案

好吧,在深入研究了 PyArray_SimpleNew() 的 Python 源代码之后,Python 似乎使用了一个嵌套宏,并在幕后进行了一些函数回调。因此,编译器看到的是指向函数的指针,而不是 PyObject* 类型的正确返回值。这是非标准用途,您只能手动抑制警告

关于python - Numpy CAPI PyArray_新 Visual Studio 警告 C4055,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40118055/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com