关于struct和typedef struct

Posted 九点人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于struct和typedef struct相关的知识,希望对你有一定的参考价值。

1 struct  TelPhone{
2 
3            char Name[20];
4 
5            char  TeiNumber[20];
6 };

为例 这里先定义了一个 TelPhone的结构体。

加入需要为TelPhone定义一个别名:

其语法为

typedef  TelPhone  TP;

而实际上TelPhone为一个结构体,

这样写比较好

tepedef struck TelPhone TP;

因为我们的TelPhone是我们自定义的类型,所以我们了解,但是别人不一定会了解,如果我们再加上struck这个关键字,别人就会知道这是一个自定义的类型,也不会造成费解。

所以最终演化成了

如下写法

typedef struct TelPhone{
             char    Name[20];
             char    TelNumber[20];
}TP;

此时,我们可以定义

可以

struct TelPhone  tp1;

也可以,直接

TP  tp2;

如果我们不需要struct TelPhone,也可以直接

typedef struct {
             char    Name[20];
             char    TelNumber[20];
}TP;

这样只能通过TP来定义结构体了。

 

在c++中的区别

 

如果我们定义了

1 struct  TelPhone{
2            char Name[20];
3           char  TeiNumber[20];
4  };

那么可以直接视同TelPhone来定义结构体变量

TelPhone tp1;

c++中

    struct   Student   
    {   
    int   a;   
    }stu1;//stu1是一个变量  

stu1就表示一个Student类型的结构体变量

而:

typedef   struct   Student2     
{   
    int   a;   
}stu2;//stu2是一个结构体类型=struct Student  

和c语言中没有差别。

以上是关于关于struct和typedef struct的主要内容,如果未能解决你的问题,请参考以下文章

关于typedef在struct使用上的一些问题

typedef struct 与 struct

typedef的用法结构体

C语言结构体中struct和typedef struct有啥区别?

(转) struct 和 typedef struct

struct和typedef struct