就现代C ++而言,是否可以指定将整数存储到char中?
我想写auto var = 255;
初始化var为unsigned char类型
可以指定其他类型的存储:
auto var_ulong = 255ul;
auto var_float = 255.f;
但是,不是short还是char?我当然想念什么...
没有标准的整数文字可以执行您想要的操作,但是如果您打算做很多事情,则可以添加自己的用户定义文字:
namespace foo {
// constexpr pre C++20
// |
// V
consteval unsigned char operator"" _uchar(unsigned long long x) {
return static_cast<unsigned char>(x);
}
}
using namespace foo;
auto var_uchar = 255_uchar;
请注意,正常的整数提升仍将有效,因此在下面,您将获得int
:
auto var_int = 55_uchar + 10_uchar;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句