gpt4 book ai didi

c++ - 如何将 int 转换为 VARTYPE?

转载 作者:行者123 更新时间:2023-11-28 07:33:34 26 4
gpt4 key购买 nike

我有

vt = x;

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

但是代码运行足够稳定,所以我怎样才能摆脱这个警告?

最佳答案

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

这表明 intVARTYPE 宽,执行此转换会导致精度下降。

But the code works enough stable

如果你想让自己相信这确实是一个安全的操作,你应该确保你执行的测试涵盖了 x 的广泛值。如果您的目标使用 32 位 int,那么您应该确保您命中了 2^162^32-1 这样的值并且仍然得到预期的结果。如果 x 表示一个数量,此操作将意味着对于超出 VARTYPE 可以表示的范围的值,您将得到一个可以用 表示的值code>VARTYPE.

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

编辑:您指出 VARTYPE 是一个 unsigned short,所以一定要避免在声明为 int 的变量之间进行比较VARTYPE.

关于c++ - 如何将 int 转换为 VARTYPE?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com