美文网首页
struct和typedef struct彻底明白了

struct和typedef struct彻底明白了

作者: 淇滨杜隆坦 | 来源:发表于2016-07-07 09:38 被阅读516次

    参看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 变量名

    相关文章

      网友评论

          本文标题:struct和typedef struct彻底明白了

          本文链接:https://www.haomeiwen.com/subject/xufljttx.html