typedef 可以为其他变量表明别名,如typedefint myInt, 这样myInt即表示int,可用于myInt a = 10; 其效果与int a = 10一样。
关于结构体的定义,
1)struct myStruct {
int a;
double b;
};
2) struct myStruct my{
int a;
double b;
};
这个是最原始的结构体定义,可定义变量如下:
struct myStruct S1;
S1.a = 1; S1.b = 1.2;
或
my S2;
同时,可用typedef为结构体申请别名,如:
3)typedef struct myStruct {
inta;
double b;
} test1, test2;
这样,test1, test2全都是结构体myStruct的别名;可以用如下的方式定义变量:
test1 S1; test2 S2; myStruct S3;my S4; 四者定义变量的方式完全等价。
总结:结构体的定义中struct后的标识符可写可不写;typedef写上就是可以写别名;没用typedef标识符的情况就是定义变量而非别名。如下所示:
typedef struct {
int a;
} test1;
test1 是结构体的别名;
struct {
int a;
} test1;
test1 是被定义的变量