如何在C中创建3位变量作为数据类型?

Ish*_*eet 6 c

我可以typedef charCHAR1其是8位.但是如何将3位变量作为数据类型?

Jay*_*iya 5

您可能想要执行以下操作:

struct
{
  .
  .
  .
  unsigned int fieldof3bits : 3;
  .
  .
  .
} newdatatypename;
Run Code Online (Sandbox Code Playgroud)

在这种情况下,fieldof3bits占用结构中的3位(根据定义其他内容的方式,结构的大小可能会有所不同)。

这种用法称为位域

从维基百科:

位字段是计算机编程中用于存储多个逻辑相邻位的术语,其中每个位组和单个位都可以寻址。位字段最常用于表示已知的固定位宽的整数类型。