如何将int转换为VARTYPE?

时间:2013-06-19 05:09:10

标签: c++ visual-c++ type-conversion

我有

vt = x;

warning C4244: '=' : conversion from 'int' to 'VARTYPE', possible loss of data

但是代码运行得足够稳定,所以如何摆脱这个警告?

1 个答案:

答案 0 :(得分:1)

warning C4244: '=' : conversion from 'int' to 'VARTYPE', possible loss of data

这表明intVARTYPE更宽,并且您通过执行此演员表而失去了精确度。

  

但是代码运行得足够稳定

如果你想让自己确信这确实是一个安全的操作,你应该确保执行涵盖x的各种值的测试。如果您的目标使用32位int,那么您应确保点击2^162^32-1等值并仍然获得预期结果。如果x表示数量,则此操作将表示对于可由VARTYPE表示的范围之外的值,您将获得可由VARTYPE表示的值。< / p>

例如,如果VARTYPE存储为16位字,int存储为32位字,则x的值从65535增加到65536 ,vt将重置(从655350)。

编辑:您表明VARTYPEunsigned short,因此请务必避免在声明为intVARTYPE的变量之间进行比较。