共用体(union)は複数の変数が同一のメモリを共用する。
特に通信などでintやfloatなどをchar配列としたい場合に重宝する。
特に通信などでintやfloatなどをchar配列としたい場合に重宝する。
union data_type { int value; char bytes[4]; }; /* Cでは型の定義ではないので下のように書く typedef union { } data_type; */ void func() { data_type d; d.value = 12345; std::cout << std::hex << std::setw(8) << std::setfill('0') << d.value << std::endl; for(int i = 3; i >= 0; i--) //little-endianなので逆から読むのです { std::cout << std::hex << std::setw(2) << std::setfill('0') << (short)d.bytes[i]; } std::cout << std::endl; }
コメントをかく