Visualization Tool Kit(VTK)など

共用体(union)は複数の変数が同一のメモリを共用する。
特に通信などで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;
}

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

Menu

メニュー

チュートリアル

アルゴリズム(数学)

並列計算

STL

#include<memory> #include<string> #include<sstream> #include<algorithm> #include<functional> #include<numeric>

Media Foundation

【メニュー編集】
Wiki記法ガイド

メンバーのみ編集できます