1. 程式人生 > >結構體中的位欄位

結構體中的位欄位

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