【问题标题】:How do structs that have been typedef-ed work in C?类型定义的结构如何在 C 中工作?
【发布时间】:2022-12-15 23:30:34
【问题描述】:

带有标签的结构允许你创建一个实例(或者任何在 c 中调用的实例)。那么 typedef 结构呢?如果 typedef 是为了将 struct 关键字替换为类型名称,那么每次使用 typename 时,您不只是在说要将 struct 关键字替换为类型名称吗?例子:

typedef struct {
    int x;
    int y;
}TypeName;


int main()
{

    TypeName instance; // isn't this the same as writing struct instance; ?

    return 0;
}

那么当您在结构上使用 typedef 时,它是如何工作的呢?

【问题讨论】:

    标签: c struct typedef


    【解决方案1】:

    它定义了一个没有名称的结构,然后使 TypeName 成为同一结构的名称。

    如果你愿意,你可以想象它好像编译器为你创建了一个随机名称(有些编译器实际上是这样做的):

    typedef struct __TOTALLY_RANDOM_NAME_wieryweuoi3u4t23423cogh234283 {
        int x;
        int y;
    }TypeName;
    
    int main()
    {
        struct __TOTALLY_RANDOM_NAME_wieryweuoi3u4t23423cogh234283 instance;
    
        return 0;
    }
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-14
      • 2011-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多