编译这样的告警怎么消除掉?
公司进来有蛋疼的人,要求我们修改代码除掉报警!像这样的报警怎么消去 啊??
warning C4244: '=' : conversion from 'WCHAR' to 'CHAR', possible loss of data(尼玛强制转换都这么做到,那还有什么办法呢?)
warning C4244: 'initializing' : conversion from 'DWORD_PTR' to 'DWORD', possible loss of data
warning C4244: 'initializing' : conversion from 'WPARAM' to 'BOOL', possible loss of data
warning C4244: 'argument' : conversion from 'int' to 'float', possible loss of data
赐教,这些告警怎么消除?我是菜鸟!写代码谁不用强制转换???另外别告诉我更改报警等级,这个没脑子的建议就别说了
[解决办法]
static_cast<char>(wchar_value);
char(wchar_value);
如果上面两种转换还不行,就写一个函数用union来转换:
CHAR wchar_to_char( WCHAR value )
{
union
{
WCHAR wvalue;
CHAR cvalue;
} m;
m.wvalue = value;
return m.cvalue;
}
其它两种整数类型同上。
int到float不好处理,如果有可能,最好用double代替int。
也可以试试这样:
static_cast<float>(int_value + 0.0);
float(int_value + 0.0);