我必须将一个非常大的 C++ 遗留代码库转换为 64 位。我已经设法编译了一个基本模块,但即使在那个小模块中我也收到了 800 条警告:
warning C4267: = conversion from size_t to int, possible loss of data
我明白为什么会出现这些,但我有什么选择可以摆脱它们?有什么系统的方法可以避免接触每一个实例吗?
最佳答案
一个选项是禁用“数据丢失”警告。为了限制禁用警告的影响,MS Visual Studio 具有 push
和 pop
指令:
#pragma warning(push)
#pragma warning(disable: 4267)
// legacy code
#pragma warning(pop)
// normal code
这些 #pragma
指令特定于 Visual Studio;你可能想用 #ifdef _MSC_VER
包装它们。
关于c++ - 移植到 64 位时如何避免 size_t 到 int 转换警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56967660/