任何人都可以告诉我,这段代码中发生了什么。我试图搜索很多地方,但不明白代码的评论部分到底是什么。:c/C++中的运算符
#include<stdio.h>
struct XYZ {
//int a:6; this one.
char s;
}structure;
int main() {
printf("%lu",sizeof(structure));
return 0;
}
我得到的输出为4
任何人都可以告诉我,这段代码中发生了什么。我试图搜索很多地方,但不明白代码的评论部分到底是什么。:c/C++中的运算符
#include<stdio.h>
struct XYZ {
//int a:6; this one.
char s;
}structure;
int main() {
printf("%lu",sizeof(structure));
return 0;
}
我得到的输出为4
这行注释掉。它什么都不做。
如果它没有被注释掉,这将意味着int a
的大小限制为只有6位。它对结构内的位域很有用。
已使用6位,为同一字节中的其他事物保留2位? –
哪6位?该结构中的第一个或最后一个? –
@Tribse:谢谢。 –
这是[bit field](https://en.wikipedia.org/wiki/Bit_field)。 –
查找位字段:https://en.wikipedia.org/wiki/Bit_field – Nbr44