我正在使用
unsigned char ucONE = (unsigned char)1;
作为全局变量。
这有必要吗?
答案 0 :(得分:4)
不,整数类型(包括3种类型char
,unsigned char
和signed char
)可以隐式转换为彼此。但是,由于这种行为可能并非总是如此,因此一些编译器会发出警告,而某些代码约定需要强制转换才能使转换显式化。
在任何情况下,如果你投射,你应该更喜欢C ++强制转换操作符,因为它们更有限,因此更安全。在您的情况下,这可能是static_cast
。
正如其他人已经暗示的那样,全局变量并不总是最佳实践,而变量(不是常数)命名为" one"价值1略有可疑,但如果不了解您的设计,很难判断这些选择是否合适。