typedef struct 与 struct

Posted

tags:

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

学c++之前最好先学c。特别要说的是,一些虽然冠名为c++的项目的文件中却大部分都是c的代码。

比如我们这个例子:

 

在c语言中,定义一个结构体和其实适合c++中有区别的。比如我们有如下的代码:

 

struct Animal

{

  float weight;

};

 

如果是c代码,要定义一个Animal对象,则需要这么写:

struct Animal a1;

而如果是c++大家都熟悉,struct Animal可以当做类似class Animal来使用。那么就是:

Animal a1;

明显可以看得出来,因为c不是面向对象的,所以它的语法在针对对象的时候也有些蹩脚。所以要专门的告诉编译器Animal是一个struct,不然编译器不知道。

但是每次都这样写自然非常麻烦切不美观。所以才有了typedef struct 原名 {结构体中的内容};别名; 这样的格式。

 

typedef struct Animal

{

  float weight;
}Ani;

这样 Ani 就等价于 struct Animal。定义一个变量的时候就可以写成:

Ani a1;

 

最后说一下,不管是c代码还是c++代码,诸如 typedef struct 原名 {结构体中的内容};别名; 这样的格式 来声明结构体,在两种语言中的意义是相同的,也就是所谓的抹掉了两种语言之间的差别。此外还能保证这条语句是一个声明语句而非定义了对象。因此这样来声明结构体,在c/c++的程序中是非常值得推荐的。

 

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

typedef struct用法详解与小结

typedef struct与struct定义结构体

typedef struct 与 struct

typedef enum与typedef struct分别是啥意思

在C和C++中struct与typedef struct的区别详细介绍

typedef和define,const,struct和typedef struct