C和C++中常见的一个错误源是如下代码: size_t n = // ... for (unsigned int i = 0; i < n; i++) // ... 当unsigned int溢出时,循环可能会无限循环。 例如,在Linux中,unsigned int是32位,而size_t是64位,因此如果n = 5000000000,将会导致无限循环。 我该如何在使用GCC或Clang时收到有关此问题的警告? GCC的-Wall和-Wextra并不会发出警告: #include <stdint.h>…