gpt4 book ai didi

c++ - 从 size_t 转换为 DWORD,可能丢失数据

转载 作者:行者123 更新时间:2023-11-27 23:51:37 36 4
gpt4 key购买 nike

我正在 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 位,你将没有足够的空间(这可能很远,但现在有一些专门的领域,即使它是有用的还不实用所以谁知道)。通常,除非需要,否则您不应该转换为不同的类型,为此您还不需要。

关于c++ - 从 size_t 转换为 DWORD,可能丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45944297/

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