c++ - 移植到 64 位时如何避免 size_t 到 int 转换警告?
问题描述
我必须将一个非常大的 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
.
推荐阅读
- sorting - 当数组中有太多对象时,ES6 中的 sort() 以错误的方式对项目进行排序
- c# - 如果我在 C# 中向现有行添加新行,如何更新 datagridview?
- python-3.x - midi2audio/FluidSynth: [WinError 2] 系统找不到指定的文件
- spring-boot - Spring Security Oauth2 AuthenticationSuccessEvent 在每次请求时发布
- java - LibGDX Tiled (TMX) Maps + Scene2D,渲染两者时的错误
- java - Java 文献中“可见性”的含义不明确?
- matlab - matlab中的假币检测
- bash - PATH 错误:“不是有效的标识符”
- amazon-web-services - AWS Amplify 权限被拒绝
- python - 无法训练具有一个隐藏层的神经网络