下面是我正在处理的一段代码..
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
如果我以同样的方式调用 union 成员,例如 mar
、sup
.. 等我我收到错误消息 ..... has no member named 'mar'
请谁告诉我怎么给 union 成员(member)打电话。
最佳答案
您必须使用 union
名称 ar_un
调用
MyRecord.ar_un.mar
关于用c调用struct中的union成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22293935/