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

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

您可能希望执行类似以下操作:

 struct { . . . unsigned int fieldof3bits : 3; . . . } newdatatypename; 

在这种情况下, fieldof3bits在结构中占用3位(基于您如何定义其他所有内容,结构的大小可能会有所不同)。

这种用法称为位域 。

来自维基百科:

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

看来你要求的是bitfields https://en.wikipedia.org/wiki/Bit_field请注意,在某些情况下,使用char或unsigned char代替bit(编译器特定,物理内存布局等)可以更安全。 )

快乐的编码!

 typedef struct { int a:3; }hello; 

它只有在内部结构时才有可能,否则就不可能