c++ - 移植到 64 位时如何避免 size_t 到 int 转换警告?

标签 c++ 64-bit

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

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

我明白为什么会出现这些,但我有什么选择可以摆脱它们?有什么系统的方法可以避免接触每一个实例吗?

最佳答案

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

#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/

相关文章:

c++ - 头文件中的 typedef vector size_type

linux - 如何在 32 位操作系统上运行 64 位应用程序

c - 这个汇编语句是什么意思?

c++ - 获取 Windows 启动消息的语言

c++ - 如何访问结构中定义的变量

c++ - 在另一个字符串中查找字符串的所有实例

wix - 使用 Wix,分发使用 SQLite 的程序(必须同时在 32 位和 64 位上运行)

iphone - iPhone 上 NSString 到 64 位整数的转换

64-bit - x64 位平台无法识别 dllexport

c++ - KD树,慢树构建