[英]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
如果我以相同的方式调用诸如mar
, sup
..等联盟成员, 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.