编译器警告(等级 4)C4254
“operator”: 从“type1”转换为“type2”,可能丢失数据
大位域分配给了小位域。 可能丢失数据。
默认情况下关闭此警告。 有关更多信息,请参见默认情况下处于关闭状态的编译器警告。
下面的示例生成 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
};