次の方法で共有


コンパイラの警告 (レベル 1) C4401

'bitfield' : メンバーがビット フィールドです

インライン アセンブリ コードで、ビット フィールド メンバーにアクセスしようとしています。 インライン アセンブリはビット フィールド メンバーにアクセスできないため、ビット フィールド メンバーが使用される前の最後のパッキング境界が使用されます。

この警告を回避するには、インライン アセンブリ コードで参照を行う前に、ビット フィールドを適切な型にキャストします。 次の例では C4401 が生成されます。

// C4401.cpp
// compile with: /W1
// processor: x86
typedef struct bitfield {
   signed bit : 1;
} mybitfield;

int main() {
   mybitfield bf;
   bf.bit = 0;
   __asm {
      mov bf.bit,0;   // C4401
   }

   /* use the following __asm block to resolve the warning
   int i = (int)bf.bit;
   __asm {
      mov i,0;
   }
   */
}