【发布时间】:2016-07-11 11:08:35
【问题描述】:
我正在尝试理解以下 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?
我知道 : 不是运算符。那么它有什么作用呢? 另外,有人能解释一下这个输出是如何实现的吗?
非常感谢!
【问题讨论】:
-
它声明了一个位域,见这里:en.wikipedia.org/wiki/Bit_field
-
为什么叫它“作业”?您在哪里看到与“作业”的相似之处?
-
我错误地将其称为分配。这是我的第一印象,但我真的不知道其中的含义。感谢您给我正确的位置!
标签: c struct operators variable-assignment bit-fields