繁体   English   中英

用c调用struct中的工会成员

[英]Calling union member in struct with c

以下是我正在处理的代码。

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 ..等联盟成员, MyRecord.hdr收到错误消息..... has no member named 'mar'

请有人告诉我如何给工会成员打电话。

您必须使用union名称ar_un进行呼叫

MyRecord.ar_un.mar

联合的成员以点表示法访问。 换句话说,必须这样访问mar

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM