结构体定义常出错
对于自定义名字的结构体:(看下面有什么错呢?)
typedef struct
{
int key;
char name[20];
ElemType *next;
} ElemType;
出现错误:error C2501: ‘next’ : missing storage-class or type specifiers。经修改如下:
typedef struct Lnode
{
int key;
char name[20];
struct Lnode *next;
} ElemType;
那为什么呢? 不常用我也忘了结构体的知识了:
———————————————————————————
下面讲讲结构体吧:
1: 最基本的结构体:
struct tag { //声明一个叫tag类型的结构体
数据类型+变量名;
...
} 变量名 ;
//定义变量:struct tag + 变量名
2:自定义结构体:
typedef struct{ //声明一个叫tag类型的结构体
数据类型+变量名;
...
}tag;
//定义变量:tag + 变量名
———————————————————————————
那回到正题,上面哪里出错了呢? 因为直接在next前面用了ElemTypy的类型,但是这个时候此类型还没有没定义,所以,当要自定义一个变量类型,且里面有自己的类型变量时,就要先声明一个tag类型以便使用。