ぼくにはよみやすい、もんくあっか

なんか、

  void hoge(RECT* pRect, int Flag)
  {
    switch( Flag )
    {
    case 0:
      pRect->left++;
      break;
    case 1:
      pRect->top++;
      break;
    case 2:
      pRect->right++;
      break;
    case 3:
      pRect->bottom++;
      break;
    }
  }

こんなコードを

  void huga(RECT* pRect, int Flag)
  {
    int* p = (int*)pRect;
    p[Flag]++;
  }

こんなコードにしてしまいました。いえー環境依存コードばんざい。

ギルティ?

蛇足的解説

Cのクラス/構造体のメンバは上から順番に配置されるので、先頭のポインタ+サイズでアクセスできると云うわけです。が、自分しか読まないコードであってもこんなことは止めましょう。クラス/構造体の構造を変えただけで動かなくなるソースのできあがりです。

今回はRECT構造体つう構造に変更のかからないであろう対象であることと、各メンバに同じ処理を行うのをどうしても共通化したかったことを理由に敢行しました。