在C和C++中,当比较不同大小的无符号整数时,如何才能收到警告?
C和C++中常见的一个错误源是如下代码: size_t n = // ... for (unsigned int i = 0; i < n; i++) // ... 当unsigned int溢出时,循环可能会无限循环。 例如,在Linux中,unsigned int是32位,而size_t是64位,因此如果n = 5000000000,将会导致无限循环。...
C和C++中常见的错误是循环可能无限循环,当unsigned int溢出时。使用GCC或Clang时,-Wall和-Wextra不会发出警告。寻找解决方案不要求n是编译时常数,且适用于现有项目。目前的编译器中没有此类警告,已提交功能请求。
