私はこのように定義された労働組合があります。ユニオンの内部メンバーにアクセスするにはどうすればよいですか?
typedef union {
enum {
REVISION = 0,
CURRENT_VERSION = REVISION
};
enum FLAGS{
FLAG_DEFAULT = 0x00000000,
FLAG_EOD = 0x00000001,
FLAG_OUTOFORDER = 0x00000002
};
CHAR _filler[32];
struct INTERNAL_STRUCTURE {
UINT16 type;
UINT16 flags;
};
}CORRHDR
私はメンバーのINTERNAL_STRUCTUREの私のコードからアクセスするにはどうすればよいですか?
私はちょうどこれを行うことができると思ってきました:
CORRHDR hdr;
hdr.INTERNAL_STRUCTURE.type = 1;
私が間違っています。私は組合のenumを見ることができますが、他には何もありません。誰かが私にこのタイプの構造(または利益)を説明できますか?
[私は窓にUNIXシステムからの移植てる]:
あなたはその構造体の型の変数を定義する必要があります。このように(インスタンス名のない共用体の中で)構造体を定義できるかどうかは、共用体に含まれるバイナリ・データの開発者参照にすぎませんか? – scottm
はい、与えられた宣言で、あなたはreinterpret_cast(ch._filler) - >型のようなものを使って内部のデータにアクセスできますが、それは扱いにくいようです。 –