Condividi tramite


Compiler Warning (level 4) C4254

 

The latest version of this topic can be found at Compiler Warning (level 4) C4254.

operator' : conversion from 'type1' to 'type2', possible loss of data

A larger bit field was assigned to a smaller bit field. There could be a loss of data.

This warning is off by default. See Compiler Warnings That Are Off by Default for more information.

The following sample generates 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  
};