从size_t转换为dword,可能会丢失数据



我正在vs 2015上构建64位C 代码。

DWORD testVar;
testVar= strLen((LPCSTR)src);
// where src is a CString.

看到警告 - C4267"参数":从" size_t"转换为" dword",可能的数据丢失。

任何建议都会有所帮助。

错误消息说它是从 size_t转换。这意味着原始值具有size_t类型。除非您有一个原因需要拥有DWORD,否则应该保留相同的类型,因此您应该做

size_t testVar = strLen((LPCSTR)src);

您应该保留相同的数据类型,因为没有机会以这种方式丢失信息,并且有助于使您的应用程序不适用。如果您使用了64位整数(size_t可能是,因为您正在使用64位系统),那么如果您想编译32位系统,您将浪费空间,而您不会如果您在size_t中有64位以上(这可能还很遥远),那么有足够的空间,但是现在有一些专业领域,即使它尚不实用,因此谁知道)。通常,在需要之前,您不应转换为其他类型,为此,您不需要。

相关内容

  • 没有找到相关文章

最新更新