c++ - 我需要转换无符号字符吗?

标签 c++ windows casting

我正在使用

unsigned char ucONE = (unsigned char)1;

作为全局变量。

有这个必要吗?

最佳答案

不可以,整数类型(包括 charunsigned charsigned char 三种类型)可以相互隐式转换。然而,由于这种行为可能并不总是有意为之,一些编译器会发出警告,并且一些代码约定需要强制转换才能显式转换。

无论如何,如果您进行强制转换,您应该更喜欢 C++ 强制转换运算符,因为它们更受限制,因此更安全。在您的情况下,这可能是 static_cast

正如其他人已经暗示的那样,全局变量并不总是最佳实践,名为“one”且值为 1 的变量(非常量)有点可疑,但在不知道您的设计的情况下,很难判断这些选择是否合适.

关于c++ - 我需要转换无符号字符吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35796640/

相关文章:

c++ - 我怎样才能摆脱这个 reinterpret_cast,或者这种用法可以吗?

C++ SendARP 返回错误的 MAC 地址?

c++ - SSL_accept() 抛出 "Invalid argument"错误

c++ - 包含 : stdafx. h 和 <vector> VisualStudio 2012 C++ 之间的冲突(错误 C2953:类模板已经定义)

使用 C 在 Windows 中捕获麦克风音频流

java - 在应用程序 session 之间保存现场数据的方法

c - 通过 Cygwin 运行可执行文件

swift - 如何检测该参数是两种任意类型的元组?

c++ - 通过套接字接收灵活的数组

将 char 缓冲区转换为 c 结构