首页 > 解决方案 > 移植到 64 位时如何避免 size_t 到 int 转换警告?

问题描述

我必须将一个非常大的 C++ 遗留代码库转换为 64 位。我已经设法编译了一个基本模块,但即使在那个小模块中,我也会收到 800 个警告:

warning C4267: = conversion from size_t to int, possible loss of data

我明白为什么会出现这些,但我有什么办法摆脱它们?是否有任何系统的方法可以避免接触每个实例?

标签: c++64-bit

解决方案


一种选择是禁用“数据丢失”警告。为了限制禁用警告的影响,MS Visual Studio 具有pushpop指令:

#pragma warning(push)
#pragma warning(disable: 4267)
// legacy code
#pragma warning(pop)
// normal code

这些#pragma指令特定于 Visual Studio;你可能想用#ifdef _MSC_VER.


推荐阅读