以下代码会导致多个错误
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
我需要做些什么才能使错误消失?
你可能想要
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新类型,它们必须在结束括号之后指定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)