warning: integer overflow in expression of type ‘int’ results in ‘-2147483648’ [-Woverflow] 12 | const long long MAX_LOGS_SIZE = 10 * 1024 * 1024 * 1024;
时间: 2024-03-16 14:47:45 浏览: 152
这个警告是因为`10 * 1024 * 1024 * 1024`的结果超出了int类型的最大值,导致整数溢出。在C++中,整数溢出是未定义行为,编译器可能会产生不可预测的结果。
为了避免这个问题,您可以将整数常量的类型更改为long long或使用后缀“LL”来表示长整型常量。例如:
```cpp
const long long MAX_LOGS_SIZE = 10LL * 1024 * 1024 * 1024; // 10 GB
```
这样就可以避免整数溢出的问题。另外,如果您确定不会超出long long类型的最大值,您也可以将类型更改为unsigned long long。
阅读全文