Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //-Wall -Wextra -Wpedantic -Wshadow -Wconversion
- #include <stdio.h>
- #include <stdlib.h>
- #define TEST_A
- #define TEST_B
- typedef struct
- {
- struct
- {
- union
- {
- unsigned char uc;
- unsigned int ui;
- } TEST_A;
- unsigned int val_1;
- } TEST_B;
- unsigned int val_2;
- } block_1;
- typedef struct
- {
- struct
- {
- union
- {
- unsigned char uc;
- unsigned int ui;
- } TEST_C;
- unsigned int val_1;
- } TEST_D;
- unsigned int val_2;
- } block_2;
- typedef struct
- {
- struct
- {
- union
- {
- unsigned char uc;
- unsigned int ui;
- };
- unsigned int val_1;
- };
- unsigned int val_2;
- } block_3;
- int main()
- {
- block_1 b1;
- b1.ui = 123;
- unsigned int v = b1.ui;
- printf("(1) %d\n", v);
- block_2 b2;
- b2.TEST_D.TEST_C.ui = 456;
- v = b2.TEST_D.TEST_C.ui;
- printf("(2) %d\n", v);
- block_3 b3;
- b3.ui = 789;
- v = b3.ui;
- printf("(3) %d\n", v);
- return 0;
- }
- /*
- Output:
- (1) 123
- (2) 456
- (3) 789
- */
Advertisement
Add Comment
Please, Sign In to add comment