警告C4018:'<' :签名/未签名不匹配

时间:2014-04-28 07:29:16

标签: c++ visual-studio-2010 error-handling compiler-errors

1>c:\users\aa\documents\visual studio 2010\projects\systemplanet\systemplanet\systemplanet.cpp(164):
    warning C4018: '<' : signed/unsigned mismatch

我正面临这个问题,我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

编译器说,将unsigned变量与signed变量进行比较是 - 不允许被视为不良做法。这是因为signed变量的two's complement representation

  • (unsigned short) 0xFFFF是65535,
  • (short) 0xFFFF为-1。

它们都具有相同的内存表示,但意味着完全相反的事物。所以编译器会保护你自己。

有关此警告的详细信息,请访问http://msdn.microsoft.com/en-us/library/y92ktdf2.aspx