Udostępnij za pośrednictwem


Ostrzeżenie kompilatora (poziom 4) C4254

"operator": konwersja z "type1":"field_bits" na "type2":"field_bits", możliwa utrata danych

Większe pole bitowe zostało przypisane do mniejszego pola bitowego. Może to spowodować utratę danych.

To ostrzeżenie jest domyślnie wyłączone. Aby uzyskać więcej informacji, zobacz Ostrzeżenia kompilatora, które są domyślnie wyłączone.

Poniższy przykład generuje C4254:

// C4254.cpp
// compile with: /W4
#pragma warning(default: 4254)

struct X {
   int a : 20;
   int b : 12;
};

int main() {
   X *x = new X();
   x->b = 10;
   x->a = 4;
   x->a = x->b;    // OK
   x->b = x->a;    // C4254
};