gpt4 book ai didi

c++ - 来自 typedef 结构的错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:25:10 24 4
gpt4 key购买 nike

下面的代码会导致几个错误

typedef struct
{
char name[20];
int vertices_qty;
int polygons_qty;
Vector3D vertex[MAX_VERTICES];
Triangle polygon[MAX_POLYGONS];
TexCoord mapcoord[MAX_VERTICES];
int id_texture;
obj_type, *obj_type_ptr;
}

特别是最后一行:

obj_type, *obj_type_ptr;

当我将鼠标悬停在 obj_type 上时,它会显示:

this declaration has no storage class or type specifier

还有一个警告,上面写着:

untagged 'struct' declared, no symbols

所有这些都在 commons.h 头文件中,该文件定义了多个结构,例如 vector2dvector3dmaterial, etc, etc 用于使用 openGL 的程序

我需要做什么才能使错误消失?

最佳答案

你可能想要

typedef struct
{
char name[20];
int vertices_qty;
int polygons_qty;
Vector3D vertex[MAX_VERTICES];
Triangle polygon[MAX_POLYGONS];
TexCoord mapcoord[MAX_VERTICES];
int id_texture;
} obj_type, *obj_type_ptr;

因为 obj_typeobj_type_ptr 是新类型,它们必须在 typedef struct{...} TYPE_HERE 的右括号之后指定;。请注意,在 C++ 中您不需要 typedef,您可以简单地定义

struct obj_type{...};

然后按原样使用它

obj_type foo;  // object of type obj_type
obj_type* foo_ptr; // pointer to obj_type

关于c++ - 来自 typedef 结构的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41490723/

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