有这样一段C代码,用来开发python模块:
typedef struct
{
PyObject_HEAD
PyObject* name;
int age;
PyObject* sex;
float id;
}Student;
static PyTypeObject Student_Class = {
PyVarObject_HEAD_INIT(NULL, 0)
.tp_name = "python_class.Student",
.tp_doc = "student类",
.tp_basicsize = sizeof(Student),
.tp_itemsize = 0,
.tp_dealloc = (destructor)Student_Destruct,
.tp_str = (reprfunc)Student_str,
.tp_flags = Py_TPFLAGS_BASETYPE | Py_TPFLAGS_DEFAULT,
.tp_methods = student_method_def,
.tp_members = Student_Member,
.tp_init = (initproc)Student_init,
.tp_new = Student_new,
};
报错PyVarObject_HEAD_INIT(NULL, 0)处C7556 不能将指定初始值设定项与非指定初始值设定项混合;
.tp_basicsize = sizeof(Student),处:E2904 C++ 中的无序初始化表达式不标准
.tp_name = "python_class.Student",处:E2903 在 C++ 中将指定和非指定的初始化表达式混搭是非标准操作
这些报错是为啥呢,我这是c的代码,为啥呢,求解答