c++ - 如何修复此警告 : conversion to 'unsigned char' from 'int' may alter its value

标签 c++ compiler-construction

我在编译库时收到此警告。

警告:从“int”转换为“unsigned char”可能会改变它的值

这会阻止我们使用编译器选项 -Werror。

任何人都可以建议解决此警告的方法吗???

最佳答案

编译器警告您 int 可能包含不适合 unsigned char 的值。

如果您绝对确定在这种情况下它总是合适的,您可以使用static_cast

告诉编译器
c = static_cast<unsigned char>(i);

编译器会在这一点上信任你(如果它不是真的,那是你的错)。

关于c++ - 如何修复此警告 : conversion to 'unsigned char' from 'int' may alter its value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6042228/

相关文章:

c++ - 为什么需要在类之外定义静态数据成员?

assembly - 是否有任何语言/编译器使用具有非零嵌套级别的 x86 ENTER 指令?

c# - 为什么 c# 中没有 "is not"关键字?

c++ - 将多边形坐标从 Double 转换为 Long 以用于 Clipper 库

c++ - 为什么 gcc 编译器将版本插入数据部分?

c++ - 在 MFC 中添加加速器(快捷方式) - 如何?

C++ 密码尝试限制

C:运行时的编译器信息

algorithm - LR(0) 和 SLR 解析有什么区别?

compiler-construction - 为什么制作 64 位版本的软件这么难?