在C和C++中,当比较不同大小的无符号整数时,如何才能收到警告?

在C和C++中,当比较不同大小的无符号整数时,如何才能收到警告?

💡 原文中文,约600字,阅读约需2分钟。
📝

内容提要

C和C++中常见的错误是循环可能无限循环,当unsigned int溢出时。使用GCC或Clang时,-Wall和-Wextra不会发出警告。寻找解决方案不要求n是编译时常数,且适用于现有项目。目前的编译器中没有此类警告,已提交功能请求。

🎯

关键要点

  • C和C++中常见的错误是循环可能无限循环,当unsigned int溢出时。
  • 在Linux中,unsigned int是32位,而size_t是64位,导致特定情况下的无限循环。
  • 使用GCC或Clang时,-Wall和-Wextra不会发出关于此问题的警告。
  • 寻找的解决方案不要求n是编译时常数,且应适用于现有项目。
  • 目前的编译器中没有此类警告,已提交功能请求。
🏷️

标签

➡️

继续阅读