操作寄存器的时候比较有用,但还是很难用;

    1. #pragma warning(disable:4996)
    2. #include<stdio.h>
    3. #include<string.h>
    4. #include <stdlib.h>
    5. struct U0
    6. {
    7. unsigned int leading : 3;
    8. unsigned int FLAG1 : 1;
    9. unsigned int FLAG2 : 1;
    10. unsigned int trailing : 27;
    11. };
    12. void printbit(unsigned int number)
    13. {
    14. unsigned mask = 1u << 31;
    15. for (; mask; mask >>= 1)
    16. {
    17. printf("%d",number & mask ? 1 : 0);
    18. }
    19. }
    20. int main()
    21. {
    22. struct U0 uu;
    23. uu.leading = 2;
    24. uu.FLAG1 = 1;
    25. uu.FLAG2 = 0;
    26. uu.trailing = 0;
    27. printf("uu的大小是%d",sizeof(uu));
    28. printbit(*(int *)&uu);
    29. system("pause");
    30. return 0;
    31. }

    image.png