Поделиться через


Предупреждение компилятора (уровень 4) C4254

"оператор" : преобразование из "типа1" в "тип2"; возможна потеря данных

Более крупное битовое поле заносится в битовое поле меньшего размера. Возможна потеря данных.

Это предупреждение по умолчанию отключено. Дополнительные сведения см. в разделе Отключенные по умолчанию предупреждения компилятора.

Следующий пример приводит к возникновению предупреждения 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
};