变量赋值中的 int i:3 是什么意思?
What does it means int i:3 in variable assignment?
我正在尝试理解 C 中的以下代码:
struct values{
int i:3;
int j:3;
int k:2;
};
int main(){
struct values v = {-6,2,5};
printf("%d %d %d", v.i,v.j,v.k);
}
此代码产生以下输出:
2 2 1
我试图理解结构 中使用的 int
值的赋值是什么意思,即: int i:3
?
我知道 : 不是运算符。那么它有什么作用呢?
另外,有人可以解释一下这个输出是如何实现的吗?
非常感谢!
数字指定每个字段的长度(以位为单位)。
因此 i
和 j
以 3 位表示,而 k
以 2 位表示。
顺便说一句,这个问题显然是 this question 的重复问题,我建议您阅读一个非常好的答案。
我正在尝试理解 C 中的以下代码:
struct values{
int i:3;
int j:3;
int k:2;
};
int main(){
struct values v = {-6,2,5};
printf("%d %d %d", v.i,v.j,v.k);
}
此代码产生以下输出:
2 2 1
我试图理解结构 中使用的 int
值的赋值是什么意思,即: int i:3
?
我知道 : 不是运算符。那么它有什么作用呢? 另外,有人可以解释一下这个输出是如何实现的吗?
非常感谢!
数字指定每个字段的长度(以位为单位)。
因此 i
和 j
以 3 位表示,而 k
以 2 位表示。
顺便说一句,这个问题显然是 this question 的重复问题,我建议您阅读一个非常好的答案。