gpt4 book ai didi

python - C 中的声明考虑了 C++ 中的定义

转载 作者:行者123 更新时间:2023-12-01 14:25:42 25 4
gpt4 key购买 nike

我正在处理一个包含以下声明的开源 C 文件

static PyTypeObject Bitarraytype;

后面是定义

static PyTypeObject Bitarraytype = {
/* A bunch of stuff */
};

我正在将此代码移植到 C++ (-std=C++2a),但是不再允许上述声明和定义,因为它声称 error: redefinition of 'Bitarraytype '

我不确定是什么原因造成的,因为上面的第一 block 只是我理解的声明。为什么这在 C++ 中不起作用,我该如何解决?

最佳答案

您显示的声明实际上是 C 中的暂定定义。C++ 没有,因此您会遇到多重定义错误。

声明应该被标记为extern以标记它是声明:

extern PyTypeObject Bitarraytype;

您还需要删除 static 关键字,因为两者不兼容。

关于python - C 中的声明考虑了 C++ 中的定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60895514/

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