在某些情况下,使用char类型在库中实现字节数组,这是许多编译器的签名类型.
是否有一种简单,可读和正确的方法来初始化一个十六进制值大于127但不大于255的有符号字符?
目前我最终得到以下内容,我一直认为必须有一些更简单的东西:
const unsigned char ff_unsigned = 0xff;
const char ff_signed = static_cast<const char>(ff_unsigned);
Run Code Online (Sandbox Code Playgroud)
我想要一个没有警告的解决方案,即使使用比默认值更高的编译器警告级别.
以下解决方案例如创建C4310:使用MSVC 2013生成截断常量值:
const char ff_signed = char(0xff);
Run Code Online (Sandbox Code Playgroud)
就在这里.使用单引号字符\x作为前缀.这表示十六进制文字char类型.
例如:'\xff'.
但请注意,char可以签名或未签名,直到并包括C++ 11,它甚至可以是1的补码签名类型.
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |