A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wodeheimalife 中级黑马   /  2015-4-22 08:31  /  679 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

typedef  struct people
{  int age;
   float weight;
}person;    和
typedef  struct
{  int age;
   float weight;
}person;  
   两者的区别在哪里?  
哪个更好用?

1 个回复

倒序浏览
首先,我说一下结构体的定义吧:
第一种方式:先定义一个people类型,然后用people类型定义了一个person变量。
第二种方式,一句代码既定义了people类型,又利用people类型定义了person变量。
注意:不要犯结构体类型重复定义的错误,比如:
  1. struct people
  2. {
  3.    int age;
  4.    float weight;
  5. } person1;
  6. struct people
  7. {
  8.    int age;
  9.    float weight;
  10. } person2;
复制代码

会导致结构体类型重复定义的错误。
还有一种方式,定义结构体类型的同时定义结构体变量和第二种方式相似只不过省去了类型名:
  1. struct
  2. {
  3.    int age;
  4.    float weight;
  5. } person3;
复制代码

这样做的缺点是不能重用
有了上面的铺垫,我想应该好说了,typedef就是给类型(这里你提问的是结构体类型)起一个别名而已,比如你给的两种:
第一种就是将struct people另名为person
第二种就是将
  1. struct
  2. {  
  3.    int age;
  4.    float weight;
  5. }
复制代码

另名为person,这样的好处,我想你肯定是知道,希望我的解答能够帮到你,错误之处还请指正。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马