我需要施放未签名的字符吗?

时间:2016-03-04 12:55:05

标签: c++ windows casting

我正在使用

unsigned char ucONE = (unsigned char)1;

作为全局变量。

这有必要吗?

1 个答案:

答案 0 :(得分:4)

不,整数类型(包括3种类型charunsigned charsigned char)可以隐式转换为彼此。但是,由于这种行为可能并非总是如此,因此一些编译器会发出警告,而某些代码约定需要强制转换才能使转换显式化。

在任何情况下,如果你投射,你应该更喜欢C ++强制转换操作符,因为它们更有限,因此更安全。在您的情况下,这可能是static_cast

正如其他人已经暗示的那样,全局变量并不总是最佳实践,而变量(不是常数)命名为" one"价值1略有可疑,但如果不了解您的设计,很难判断这些选择是否合适。