1 c++ variables abstract-data-type
是否可以在 C++ 中使用 type-def(如 10 位或 12 位)来定义一些奇数大小的数据类型而不是标准类型?
您可以为此使用位域:
struct bit_field
{
unsigned x: 10; // 10 bits
};
Run Code Online (Sandbox Code Playgroud)
并像使用它一样
bit_field b;
b.x = 15;
Run Code Online (Sandbox Code Playgroud)
例子:
#include <iostream>
struct bit_field
{
unsigned x: 10; // 10 bits
};
int main()
{
bit_field b;
b.x = 1023;
std::cout << b.x << std::endl;
b.x = 1024; // now we overflow our 10 bits
std::cout << b.x << std::endl;
}
Run Code Online (Sandbox Code Playgroud)
AFAIK,没有办法在 a 之外有一个位域struct,即
unsigned x: 10;
Run Code Online (Sandbox Code Playgroud)
本身是无效的。