2013-07-12 66 views
2

任何人都可以告訴我,這段代碼中發生了什麼。我試圖搜索很多地方,但不明白代碼的評論部分到底是什麼。:c/C++中的運算符

#include<stdio.h> 

struct XYZ { 
    //int a:6; this one. 
    char s; 
}structure; 

int main() { 
    printf("%lu",sizeof(structure)); 
    return 0; 
} 

我得到的輸出爲4

+3

這是[bit field](https://en.wikipedia.org/wiki/Bit_field)。 –

+0

查找位字段:https://en.wikipedia.org/wiki/Bit_field – Nbr44

回答

4

這行註釋掉。它什麼都不做。

如果它沒有被註釋掉,這將意味着int a的大小限制爲只有6位。它對結構內的位域很有用。

+0

已使用6位,爲同一字節中的其他事物保留2位? –

+0

哪6位?該結構中的第一個或最後一個? –

+0

@Tribse:謝謝。 –