[转]关于 typedef struct 和 struct

原文地址:http://zhidao.baidu.com/question/50166479.html

关于 typedef struct 和 struct

2008-04-04 01:53 提问者: leaguesoft |浏览次数:38121次
请高手帮忙解释以下几种结构体定义的区别:
struct{
int x;
int y;
}test1;

struct test
{int x;
int y;
}test1;

typedef struct test
{int x;
int y
}text1,text2;
这几种方法把小弟弄得头疼,不胜感激!

问题补充:

还有:
type struct
{int x;
int y;
}test1;
我来帮他解答

满意回答
2008-04-04 03:24
(1) struct{ int x; int y; }test1; 
好,定义了 结构 test1,
test1.x 和 test1.y 可以在语句里用了。

(2) struct test {int x; int y; }test1;
好,定义了 结构 test1,
test1.x 和 test1.y 可以在语句里用了。
与 1 比,省写 了 test

(3)
typedef struct test
{int x; int y; // 你漏打分号,给你添上
}text1,text2;
只说了 这种结构 的(类型)别名 叫 text1 或叫 text2

真正在语句里用,还要写:
text1 test1;
然后好用 test1.x test1.y

或写 text2 test1;
然后好用 test1.x test1.y

(4)type struct {int x; int y; }test1;
这个不可以。
改 typedef ... 就可以了。
但也同 (3)一样,还要 写:
test1 my_st;
才能用 my_st.x 和 my_st.y
 
2008-04-04 01:58jamesbind| 当前分类:12 排名:4350
第一个:只定义了一个test1的结构体变量,以后还想定义这种结构体的话,必须重写整个结构体。

第二个:以后想定义结构体的话,可以用struct test test2的方式定义。

第三个:可以直接用text1 test3的形式定义结构体变量。
原文地址:https://www.cnblogs.com/KingOfFreedom/p/2807117.html