c语言一个结构体的问题

来源:百度知道 编辑:UC知道 时间:2024/06/22 17:33:11
typedef struct abc
{ double a;
char b[10];
} s;

struct
{ double a;
char b[10];
}s;
typedef struct
{ double a;
char b[10];
} s;
s a;
这三个都是对的 三个s分别有什么区别呢

typedef struct abc
{ double a;
char b[10];
} s; \\S为结构体struct abc的别名,用法效果都和struct abc一样

struct
{ double a;
char b[10];
}s; //s为以上结构体的变量

typedef struct
{ double a;
char b[10];
} s; //与第一个相同,少了结构体名而已
s a; //这里定义了一个变量a,

第一个s是结构abc的宏,第二个s是这个结构的一个对象,第三个s也是这个结构的宏