結構體中的位欄位
阿新 • • 發佈:2018-12-15
z指定的位數決定了結構體變數d的大小,當z:29時,佔用4個位元組,共32位;當z:32時,需要使用8個位元組,佔用35位,自動補齊。一個int型佔用4個位元組。
#include <iostream> #include <stdio.h> using namespace std; struct a { int x:1; int y:2; int z:29; }; int main() { a d; d.x=1; d.y=2; d.z=9; printf("%d \n", d); printf("%d \n", sizeof(d)); while(1); return 0; }
輸出結果:77 4
其中77對應的二進位制數為:1001101 對應十進位制的:9(1001)2(10)1(1)
#include <iostream> #include <stdio.h> using namespace std; struct a { int x:1; int y:2; int z:32; }; int main() { a d; d.x=1; d.y=2; d.z=9; printf("%d \n", d); printf("%d \n", sizeof(d)); while(1); return 0; }
輸出結果:-858993459 8