用C语言写结构体时,一般有以下3种写法,下面做一个比较总结
1、
struct __node
{
int data;
}node;
2、
typedef struct __node
{
int data;
}node;
3、
typedef struct
{
int data;
}node;
第一种写法做了两件事情:
1)
定义一个名为__node的结构体:
struct __node
{
int data;
};
2)然后申明一个实例node:
struct __node node;
这种写法不好的地方在于以后每次需要结构体变量时都需要这样申明:
struct __node XX;
不太方便。
第二种写法也做了两件事:
1)定义一个名为__node的结构体:
struct __node
{
int data;
};
2)给这个结构体起一个别名:
typedef struct __node node;
以后用到struct __node的地方都可以用node代替了,不需要加上struct关键字了。定义变量时,写成:
node XX;
第三种写法是第二种写法的简写,它定义了一个匿名的结构体,而node是它的别名。
定义变量时,写成:
node XX;