Sunday, March 29, 2009

struct with bit limit

struct data {
int data_1:4;
int data_2:4;
int data_3;
};

int main(int argc, char** argv){
struct data my_data = {
.data_1 = 0;
.data_2 = 1;
.data_3 = 1;
};

my_data.data_2 = my_data.data_2 + 15;
my_data.data_3 = my_data.data_3 + 15;

printf("struct size = %d.\n", sizeof(struct data) );
printf("data_1 = %d.\n", my_data.data_1);
printf("data_2 = %d.\n", my_data.data_2);
printf("data_3 = %d.\n", my_data.data_3);
}

output:
struct size = 8
data_1 = 0
data_2 = 0
data_3 = 16