鱼C论坛

 找回密码
 立即注册
查看: 2434|回复: 5

简单问题求解

[复制链接]
发表于 2016-5-9 16:44:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
typedef struct{
        int id;
        char name[20];
} STU,*STU;



struct STUDENT{
        int id;
        char name[20];
} STU,*STU;

有什么区别啊typedef 这个东西不太懂哦!求教
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2016-5-9 17:18:38 | 显示全部楼层
typedef struct{
        int id;
        char name[20];
} STU;
是定义了一种名为STU的类型,以后就可以像
STU stu1;
STU stu2;
这样声明定义一个变量,和
int a;
类似。
而后者只是定义了一个这种结构的结构体,每次都要像
struct STUDENT{
        int id;
        char name[20];
}stu1;
struct STUDENT{
        int id;
        char name[20];
}stu2, stu3;
这样来声明定义一个这样结构的结构体变量。
另外你定义的指针类型重名了,要换一个
typedef struct{
        int id;
        char name[20];
} STU, *pSTU;
pSTU stu; 等价于 STU* stu; 使用如下
STU stu;
pSTU pstu;
stu.id = 123;
pstu->id = 1234;
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-9 17:23:54 | 显示全部楼层
不好意思,错了个地方。
struct STUDENT{
        int id;
        char name[20];
}stu1;
这个之后只用
struct STUDENT stu2, stu3;
即可,不需要重复定义结构了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-5-9 17:32:49 | 显示全部楼层
Irony 发表于 2016-5-9 17:23
不好意思,错了个地方。

这个之后只用

懂了额,谢谢大兄弟
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 21:48:48 | 显示全部楼层
真的懂了吗?
看看这个
http://blog.csdn.net/wangweixaut061/article/details/6549768
如果你有时间,建议看完整篇,我就是看完这篇才明白了的。
如果时间不是很充足,那就看看 关于typedef 的那部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2016-5-10 22:34:12 | 显示全部楼层
typedef 只是一个关键字  就像c语言里面的 int  for double return 等等,它的作就是专门用来给类型取别名的;
typedef student s1{
......
} Student
这里的Student  就是 student s1 这个类型的别名,如果没有加typedef 大括号后面就不能加 Student
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-27 00:46

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表