我遇到了像"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 排列得尽可能紧凑。例如。以上内容很适合一个字节。