タグ

ブックマーク / cjohn.hatenadiary.org (1)

  • ラップアラウンドの処理はめんどう - Dive to the Software

    32ビット値でインデックスとオフセットを受け取って、対象のアドレスになんかの操作をするような関数があったとする。 とりあえず、インデックスは最大100までとすると、範囲が超えてないかチェックする必要がでてくるわけで。 bool test(unsigned int index, unsigned int offset) { //範囲チェック if(100 < index + offset) { //エラー return false; } //何かの処理 return true; } これだと、index + offsetが32ビット値を超えるときに範囲内に戻っちゃうのでエラーにならない。 じゃぁ、一回64ビット値に入れればいいじゃないかと。 bool test(unsigned int index, unsigned int offset) { //範囲チェック long long targ

    ラップアラウンドの処理はめんどう - Dive to the Software
  • 1