问题描述
在进行一些C代码时,我遇到了类似的语句
char var1 : num1,char var2: num2;
从上下文来看,数字似乎是num1
是字节大小。
我找不到任何解释。
解决方法
这可能是C编程语言中称为 bit-field 的一部分。 位字段只能在struct之内声明,例如
struct {
unsigned int flag : 1; /* A one bit flag */
unsigned int value : 5; /* A 5 bit value */
} option;
if (option.flag == 1)
option.value = 7;
关于位域的所有内容均由实现定义。目的是使编译器将位域安排得尽可能紧凑。例如。上面的内容很适合一个字节。