typedef struct出错

1 c++ struct typedef

以下代码会导致多个错误

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;
}
Run Code Online (Sandbox Code Playgroud)

特别是最后一行:

obj_type, *obj_type_ptr;
Run Code Online (Sandbox Code Playgroud)

当我obj_type用鼠标悬停时,它显示:

此声明没有存储类或类型说明符

还有一个警告:

未标记的'struct'声明,没有符号

所有的这是一个内commons.h定义几个stucts如头文件vector2d,vector3d,material,等等等等为一个程序,使用OpenGL

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

vso*_*tco 7

你可能想要

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;
Run Code Online (Sandbox Code Playgroud)

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

struct obj_type{...};
Run Code Online (Sandbox Code Playgroud)

然后按原样使用它

obj_type foo;  // object of type obj_type
obj_type* foo_ptr; // pointer to obj_type
Run Code Online (Sandbox Code Playgroud)