-Wconversion
跳到导航
跳到搜索
警告可能更改值的隐式转换。这包括将 double 类型的 x 转换为整数类型 abs(x) 的转换、将 signed 类型转换为 unsigned 类型的转换,如 unsigned ui = -1、将更大类型转换为较小类型的转换,如 sqrtf(M_PI)。对于显式类型转换,如 abs((int) x) 和 ui = (unsigned) -1,或转换不会更改值的情况,如 abs(2.0),则不发出警告。对于 signed 和 unsigned 整数之间的转换,C++ 默认情况下不会发出警告,除非显式启用`-Wsign-conversion`。对于 C++,还警告用户自定义转换时可能导致混淆的重载解析;以及从未使用类型转换运算符的转换,如转换到 void、相同类型、基类或它们的引用。对于 signed 和 unsigned 整数之间的转换,C++ 默认情况下不会发出警告,除非显式启用`-Wsign-conversion`。