How to create struct with 8 bit fields in C

1 Answer

0 votes
#include <stdio.h>

struct test {
    unsigned int x1 : 8;
    unsigned int x2 : 8;
    unsigned int x3 : 8;
    unsigned int x4 : 8;
};  

void work() {
  struct test data;
  
  data.x1 = 0;
  data.x2 = 0;
  data.x3 = 0;
  data.x4 = 0;
  
  data.x1++;
  data.x2 += 2;
  data.x3 += 3;
  data.x4 += 4;
  
  printf("%i %i %i %i", data.x1, data.x2, data.x3, data.x4);
}

int main(void) {
    printf("size = %zu\n", sizeof(struct test));
    
    work();
}




/*
run:

size = 4
1 2 3 4

*/

 



answered May 10, 2022 by avibootz

Related questions

1 answer 134 views
1 answer 214 views
214 views asked Aug 28, 2016 by avibootz
1 answer 232 views
232 views asked Aug 28, 2016 by avibootz
2 answers 242 views
242 views asked Jan 5, 2016 by avibootz
1 answer 140 views
1 answer 115 views
...