【发布时间】:2019-07-10 09:30:28
【问题描述】:
我必须将一个非常大的 C++ 遗留代码库转换为 64 位。我已经设法编译了一个基本模块,但即使在那个小模块中,我也会收到 800 个警告:
warning C4267: = conversion from size_t to int, possible loss of data
我理解为什么会出现这些问题,但我有什么办法可以摆脱它们?有什么系统的方法可以避免接触每一个实例吗?
【问题讨论】:
-
您可能会在这里stackoverflow.com/questions/6578048/size-t-vs-int-warning 得到答案。如果您认为该值不超过 2,147,483,647(MAX_INT),则可以忽略警告,否则如果不触及每个实例,我看不到简单的出路。
-
有两个不同的问题:整数类型的等级以及它们的符号。您的警告主要是关于排名问题。有关排名和签名问题的更多想法,也可以考虑这个问题的答案:stackoverflow.com/questions/275853/…