我正在使用
unsigned char ucONE = (unsigned char)1;
作为全局变量。
有这个必要吗?
最佳答案
不可以,整数类型(包括 char
、unsigned char
和 signed char
三种类型)可以相互隐式转换。然而,由于这种行为可能并不总是有意为之,一些编译器会发出警告,并且一些代码约定需要强制转换才能显式转换。
无论如何,如果您进行强制转换,您应该更喜欢 C++ 强制转换运算符,因为它们更受限制,因此更安全。在您的情况下,这可能是 static_cast
。
正如其他人已经暗示的那样,全局变量并不总是最佳实践,名为“one”且值为 1 的变量(非常量)有点可疑,但在不知道您的设计的情况下,很难判断这些选择是否合适.
关于c++ - 我需要转换无符号字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35796640/