【问题标题】:What's the difference between struct and typedef struct? [duplicate]struct 和 typedef struct 有什么区别? [复制]
【发布时间】:2020-03-16 22:35:01
【问题描述】:

我正在学习 c 编程,我想知道 structtypdef struct 之间有什么区别

因为我所看到的

struct Structure {
   char * name; 
   int number;
};

作用相同

typedef struct {
   char * name;
   int number;
} Structure;

【问题讨论】:

    标签: c struct typedef


    【解决方案1】:

    在此声明中

    struct Structure {
       char * name; 
       int number;
    };
    

    声明了一个类型说明符struct Structure。在声明中使用它,您必须编写关键字结构,如

    struct Structure s;
    

    你可以引入一个变量名结构,它不会与结构标签名冲突,因为它们在不同的命名空间中。

    在此声明中

    typedef struct {
       char * name;
       int number;
    } Structure;
    

    声明了一个未命名的结构,并为其引入了别名Structure。您不能在定义结构的同一范围内为变量引入相同名称的结构。

    【讨论】:

      【解决方案2】:

      它们不一样。

      首先创建一个名为struct Structure的结构体,该类型的变量定义如下:

      struct Structure myvar;
      

      第二个创建一个匿名结构,并为其赋予别名Structure。这种类型的变量定义如下:

      Structure myvar;
      

      此外,这两个结构不能互换,因为它们有不同的名称。

      【讨论】:

        猜你喜欢
        • 2019-05-06
        • 2011-11-14
        • 1970-01-01
        • 1970-01-01
        • 2014-06-17
        • 1970-01-01
        • 2014-10-20
        • 2017-01-11
        • 1970-01-01
        相关资源
        最近更新 更多