struct和typedef struct彻底明白了

参看struct和typedef struct彻底明白了

typedef struct和struct的区别:

typedef struct tagMyStruct   
      {     
            int iNum; 
    long lLength;
  } MyStruct;

上面的tagMyStruct是标识符,MyStruct是变量类型(相当于(int,char等))。

这语句实际上完成两个操作:
      1) 定义一个新的结构类型
 struct tagMyStruct  
 {      
 int iNum;     
 long lLength;  
 };
  分析:tagMyStruct称为“tag”,即“标签”,实际上是一个临时名字,不论是否有typedefstruct 关键字和tagMyStruct一起,构成了这个结构类型,这个结构都存在。
  我们可以用struct tagMyStruct varName来定义变量,但要注意,使用tagMyStruct varName来定义变量是不对的,因为struct 和tagMyStruct合在一起才能表示一个结构类型。

2) typedef为这个新的结构起了一个名字,叫MyStruct。
    typedef struct tagMyStruct MyStruct;
  因此,MyStruct实际上相当于struct tagMyStruct,我们可以使用MyStruct varName来定义变量。
  2.
    typedef struct tagMyStruct
 {
        int iNum;
    long lLength;
 } MyStruct;

在C中,这个申明后申请结构变量的方法有两种:
    (1)struct tagMyStruct 变量名
    (2)MyStruct 变量名
    在c++中可以有
    (1)struct tagMyStruct 变量名
    (2)MyStruct 变量名
    (3)tagMyStruct 变量名

推荐阅读更多精彩内容

  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    萌萌的小伟哥阅读 446评论 0 0
  • 分三块来讲述:1 首先://注意在C和C++里不同在C中定义一个结构体类型要用typedef:typedef st...
    Murrey_Xiao阅读 87评论 0 0
  • typedef是类型定义的意思。typedef struct 是为了使用这个结构体方便。 具体区别在于: 若str...
    smile刺客阅读 1,979评论 0 1
  • 1. [C#语言基础]请简述拆箱和装箱。 答: 装箱操作: 值类型隐式转换为object类型或由此值类型实现的任何...
    胤醚貔貅阅读 1,080评论 1 27
  • 请告诉我,幻想是一种什么状态,无休止的胡思乱想,是逃避,懦鶸的表现?生活应该勇于面对,有更多的挑战,才有更好的开...
    归真返璞gzfp阅读 17评论 0 0