struct与typedef struct|define与typedef

还是在《C专家编程》里面看到的,相当于笔记吧:

1、struct  fruit

   {

float  weight;

}fruit;

a:struct  fruit  apple;

b:frint  banana;

上面两个声明都是正确的吗?

2.typedef        struct     fruit

{

float weight;

}fruit;

a:struct  fruit  apple;

b:fruit  banana;

这样呢?

 

如果你不知道答案是什么,那么让我们来看下这个:

struct 结构标签 {

成员类型1         成员名称1

成员类型2         成员名称2

成员类型3         成员名称3

..............

}变量1,变量2-----//这个是变量名

typedef  struct 结构标签 {

成员类型1         成员名称1

成员类型2         成员名称2

成员类型3         成员名称3

..............

}别名1,别名2-----//这个是别名

现在,你应该可以知道正确答案了吧:

对于的一个:a正确,b错误。

对于的第二个:ab都正确。

但是在第一个中,我们可以这样:

struct  fruit  apple,banana

其实,我们只要记住一点:typedef是起别名的,就像每个人都有的小名一样!

 

 

definetypedef

我们在写程序的时候经常会这样写:

#define MAXSIZE 100    //MAXSIZE做为100的宏

typedef  char *  str_ptr //char型的指针用str_ptr来代替

两个可以说都是起别名,但是他们在这两个方面有区别:

1、typedef是一个整体,不能用别的来修饰。

#define  peach  int;

unsigned        peach i;//没有问题

typedef  int banana

unsigned banana i//这个就不行了

2、在连续几个的变量声明中,typedef能保证变量的类型一致。

#define  str_ptr  char *;

str_ptr str1,str2;//str1是指针类型,而str2不是

 

typedef  char *  str_ptr;

str_ptr  str1,str2;//str1str2都是指针类型

 

我们可以这样理解typedef,它是一种“封装”。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值