Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- -std=c99 -Wall -Wextra -Wpedantic -Wshadow
- */
- #include <stdio.h>
- #include <stdlib.h>
- #include <stdbool.h>
- #include <string.h>
- struct status{
- unsigned int sv1:1;
- unsigned int sv2:1;
- unsigned int sv3:1;
- unsigned int sv4:1;
- unsigned int sv5:1;
- unsigned int sv6:1;
- unsigned int sv7:1;
- unsigned int sv8:1;
- unsigned int sv9:1;
- unsigned int sv10:1;
- unsigned int sv11:1;
- unsigned int sv12:1;
- unsigned int sv13:1;
- unsigned int sv14:1;
- unsigned int sv15:1;
- unsigned int sv16:1;
- unsigned int sv17:1;
- unsigned int sv18:1;
- unsigned int sv19:1;
- unsigned int sv20:1;
- unsigned int sv21:1;
- unsigned int sv22:1;
- unsigned int sv23:1;
- unsigned int sv24:1;
- unsigned int sv25:1;
- unsigned int sv26:1;
- unsigned int sv27:1;
- unsigned int sv28:1;
- unsigned int sv29:1;
- unsigned int sv30:1;
- unsigned int sv31:1;
- unsigned int sv32:1;
- };
- struct tst {
- unsigned int v1:22;
- unsigned int v2:14;
- unsigned int v3:9;
- unsigned int v4:3;
- };
- int main (int argc, char **argv){
- struct status Stat;
- struct tst sTst;
- memset(&Stat,0,sizeof(Stat));
- Stat.sv1 = true;
- Stat.sv2 = false;
- printf("sizeof Stat: %zu\n", sizeof(Stat));
- printf("sizeof sTst: %zu\n", sizeof(sTst));
- printf("sizeof int: %zu\n", sizeof(int));
- printf("sv1: ");
- if(Stat.sv1) printf("true");
- else printf("false");
- printf("\nsv2: ");
- if(Stat.sv2) printf("true");
- else printf("false");
- printf("\n");
- sTst.v1 = 123;
- sTst.v2 = 555;
- sTst.v3 = 15;
- sTst.v4 = 7;
- printf("v1: %d\n",sTst.v1);
- printf("v2: %d\n",sTst.v2);
- printf("v3: %d\n",sTst.v3);
- printf("v4: %d\n",sTst.v4);
- return 0;
- }
- /*
- output:
- sizeof Stat: 4
- sizeof sTst: 8
- sizeof int: 4
- sv1: true
- sv2: false
- v1: 123
- v2: 555
- v3: 15
- v4: 7
- */
Advertisement
Add Comment
Please, Sign In to add comment