我使用typedef'ed结构创建一个链表,但是编译器告诉我我的新类型是未定义的。
typedef struct valholder
{
char* id;
union
{
int ival;
float fval;
char* cval;
};
valholder* next;
};
我该如何解决这个问题?
答案 0 :(得分:2)
typedef
的语法是:
typedef <type> <alias>
其中<type>
是现有类型名称或类型表达式(如struct {...}
),<alias>
是新类型名称。
这是定义数据结构的一种方法,而不是引用别名:
typedef struct valholder_s {
char* id;
union {
int ival;
float fval;
char* cval;
};
struct valholder_s* next;
} valholder;
答案 1 :(得分:1)
试试这个:
typedef struct valholder
{
char* id;
union
{
int ival;
float fval;
char* cval;
};
struct valholder* next;
} valholder;