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

时间:2015-07-10 11:20:09

标签: c

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

3 个答案:

答案 0 :(得分:4)

您可能希望执行与以下内容类似的操作:

fieldof3bits

在这种情况下,my @list = ( "one", "two", "three", "onefour", "one" ); foreach my $f (@list) { say "f: $f"; my $length = length($f); say "length: $length"; say "true { $length && $f} $_: " . ( $length && "$f" ) for @list; my $count = true { $length && "$f" } @list; say "count: $count"; if ( $count > 1 ) { print "Error with: ", $f, " counted ", $count, " times!\n"; } $count = 0; } 在结构中占用3位(基于您如何定义其他所有内容,结构的大小可能会有所不同)。

此用法称为bit field

来自维基百科:

  

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

答案 1 :(得分:1)

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

快乐的编码!

答案 2 :(得分:1)

typedef struct {

int a:3;
}hello; 

只有当它在内部结构中时才有可能