c++ - 警告 C4018 : '<' : signed/unsigned mismatch

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

关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。












想改进这个问题?将问题更新为 on-topic对于堆栈溢出。

8年前关闭。




Improve this question



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

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

最佳答案

编译器说比较 unsigned针对 signed 的变量变量是 - 不允许被认为是不好的做法。这是因为 two's complement representationsigned多变的。

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

  • 它们都具有相同的内存表示,但含义完全相反。所以编译器正在保护你免受你自己的伤害。

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

    关于c++ - 警告 C4018 : '<' : signed/unsigned mismatch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23335003/

    相关文章:

    visual-studio-2010 - 如何防止 .vdproj 编译在每次编译时更新 PackageCode?

    python - 在python中实现循环队列-级别标准

    vba - 如何自动停止VBA宏?

    javascript - TypeError的含义

    c++ - 使用 emplace_back 将元素添加到 vector 时,如何强制编译器使用默认构造函数?

    c++ - 如何快速搜索项目中所有包含的头文件以查找特定符号?

    c++ - 仿函数:将 std::function 包装在类中

    c++ - 如何修改 CTAGS 生成的标记文件的默认分隔符

    c# - 如何初始化一个使用命名参数的 `HashTable` 对象?

    .net - 找不到引用的 DLL,因为 VS 命名空间错误