[英]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.