用c调用struct中的union成员

时间:2014-03-10 07:02:19

标签: c struct

下面是我正在处理的一段代码..

struct ArgusRecord {
   struct ArgusRecordHeader hdr;
   union {
      struct ArgusMarStruct     mar;
      struct ArgusMarSupStruct  sup;
      struct ArgusFarStruct     far;
      struct ArgusEventStruct event;
#if defined ARGUS_PLURIBUS
      struct ArgusVflowStruct vflow;
#endif
   } ar_un;
};

我已将变量定义为

struct ArgusRecord MyRecord;

我可以调用第一个成员MyRecord.hdr如果我调用marsup等工会成员的方式相同,我收到错误消息..... has no member named ‘mar’ < / p>

请有人告诉我如何致电工会成员。

2 个答案:

答案 0 :(得分:3)

您必须使用union名称ar_un

致电
MyRecord.ar_un.mar

答案 1 :(得分:1)

使用点表示法访问工会成员。 换句话说,必须像这样访问mar

struct ArgusRecord record;
record.ar_un.mar (...)