Sdílet prostřednictvím


Upozornění kompilátoru (úroveň 1) C4401

Bitfield: člen je bitové pole

Vložený kód sestavení se pokusí o přístup k členu bitového pole. Vložené sestavení nemá přístup k členům bitového pole, takže poslední hranice balení před tím, než se použije člen bitového pole.

Chcete-li se tomuto upozornění vyhnout, přetypujte bitové pole na odpovídající typ před vytvořením odkazu v vložený kód sestavení. Následující ukázka vygeneruje 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;
   }
   */
}