我遇到了像"char var : 3"这样的语句。这个 C 语句是做什么的?
I encountered a statement like "char var : 3". What does this C statement do?
在浏览一些 C 代码时,我遇到了像
这样的语句
char var1 : num1, char var2: num2;
从上下文来看,似乎数字即 num1
是字节大小。
我找不到任何解释。
这可能是 C 编程语言中所谓的 bit-field 的一部分。
Bit-fields 只能在结构内部声明,例如
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;
bit-fields 上的所有内容都是 implementation-defined。目的是让编译器将 bit-field 排列得尽可能紧凑。例如。以上内容很适合一个字节。
在浏览一些 C 代码时,我遇到了像
这样的语句char var1 : num1, char var2: num2;
从上下文来看,似乎数字即 num1
是字节大小。
我找不到任何解释。
这可能是 C 编程语言中所谓的 bit-field 的一部分。 Bit-fields 只能在结构内部声明,例如
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;
bit-fields 上的所有内容都是 implementation-defined。目的是让编译器将 bit-field 排列得尽可能紧凑。例如。以上内容很适合一个字节。