我当前正在使用的数据单元(网络数据包头)的定义中有2个标志,存储在字节字段中,并通过按位运算符进行访问。不幸的是,我只需要2位,然后思考我可以用其他6位做什么?我可以用它们存储号码吗?
我可以使用它们存储一些内部状态代码(值范围小于char
?),而不仅仅是浪费它们。
是否有小于字节的数据类型,我该如何在C ++中使用它们?如果没有,我是否应该浪费那些零碎的东西,让它们毫无意义?
你可以使用一些领域,如所描述这里。
从该页面改编而成:
#include <iostream>
struct S {
// 6-bit unsigned field,
// allowed values are 0...63
unsigned int b : 6;
};
int main()
{
S s = {7};
++s.b;
std::cout << s.b << '\n'; // output: 8
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句