【问题标题】:What do comma separated struct elements mean? [closed]逗号分隔的结构元素是什么意思? [关闭]
【发布时间】:2019-11-28 12:59:16
【问题描述】:

我有这样的 struct

typedef struct stdHdrStruct {
  int isou,icd,irec_s,oset;
} StdHdr;

我不知道如何使用它。我从来没有遇到过这样的事情。我如何从中获取信息?例如,我想获取有关isou 的信息。

【问题讨论】:

  • 哪个部分让你感到困惑? typedefint isou,icd,irec_s,oset; ?

标签: c struct typedef


【解决方案1】:

你的结构体的定义方式等价于

typedef struct stdHdrStruct {
  int isou;
  int icd;
  int irec_s;
  int oset;
} StdHdr;

您访问字段,例如isou,与通常完全一样:

StdHdr el; 
StdHdr *pEl = malloc( sizeof(*pEl) ); // Pointer to struct

el.isou = 5;
pEl->isou = 7;

如您所见,由于您使用了typedef 关键字,因此您可以使用StdHdr 别名而不是完整的struct stdHdrStruct 名称。

【讨论】:

    【解决方案2】:

    typedef 定义了一个新的类型,它不创建变量。

    换句话说,像这样的语句

     struct stdHdrStruct x;
    

    相同
    StdHdr x;
    

    现在,您可以在两种情况下使用相同的x。例如,如果你想访问isou,你可以这样做

     x.isou = 5;
    

    在这两种情况下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-18
      • 2021-02-11
      • 2023-01-07
      相关资源
      最近更新 更多