码迷,mamicode.com
首页 > 其他好文 > 详细

typedef struct 与 struct

时间:2017-10-13 17:14:17      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:声明   def   目的   c/c++   适合   部分   animal   面向对象   nim   

学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

标签:声明   def   目的   c/c++   适合   部分   animal   面向对象   nim   

原文地址:http://www.cnblogs.com/AkazaAkari/p/7661783.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!