共用体(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;
}

コメントをかく