Udostępnij przez


Ostrzeżenie kompilatora (poziom 1) C4401

"bitfield": element członkowski jest polem bitowym

Uwagi

Wbudowany kod zestawu próbuje uzyskać dostęp do elementu członkowskiego pola bitowego. Wbudowany zestaw nie może uzyskać dostępu do składowych pól bitowych, więc ostatnia granica pakowania przed użytym elementem członkowskim pola bitowego.

Aby uniknąć tego ostrzeżenia, należy rzutować pole bitowe na odpowiedni typ przed wprowadzeniem odwołania w kodzie wbudowanym zestawu.

Example

Poniższy przykład generuje 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;
   }
   */
}