任何人都可以告訴我,這段代碼中發生了什麼。我試圖搜索很多地方,但不明白代碼的評論部分到底是什麼。: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