我正在尝试这样做:
typedef struct {
float x;
float y;
} coords;
struct coords texCoordinates[] = { {420, 120}, {420, 180}};
但编译器不会让我。 :(这个声明怎么了?谢谢你的帮助!
答案 0 :(得分:14)
要么:
typedef struct {
float x;
float y;
} coords;
coords texCoordinates[] = { {420, 120}, {420, 180}};
OR
struct coords {
float x;
float y;
};
struct coords texCoordinates[] = { {420, 120}, {420, 180}};
在C中,struct
名称位于与typedef
不同的名称空间中。
当然,您也可以使用typedef struct coords { float x; float y; } coords;
并使用struct coords
或coords
。在这种情况下,您选择的内容无关紧要,但对于自引用结构,您需要一个结构名称:
struct list_node {
struct list_node* next; // reference this structure type - need struct name
void * val;
};