Related Articles

# Anonymous Union and Structure in C

• Difficulty Level : Easy
• Last Updated : 26 Oct, 2020

In C11 standard of C, anonymous Unions and structures were added.
Anonymous unions/structures are also known as unnamed unions/structures as they don’t have names. Since there is no names, direct objects(or variables) of them are not created and we use them in nested structure or unions.
Definition is just like that of a normal union just without a name or tag. For example,

```// Anonymous union example
union
{
char alpha;
int num;
};
```
```// Anonymous structure example
struct
{
char alpha;
int num;
};
```

Since there is no variable and no name, we can directly access members. This accessibility works only inside the scope where the anonymous union is defined.
Following is a complete working example of anonymous union.

## C

 `// C Program to demonstrate working of anonymous union``#include ``struct` `Scope {``    ``// Anonymous union``    ``union` `{``        ``char` `alpha;``        ``int` `num;``    ``};``};` `int` `main()``{``    ``struct` `Scope x;``    ``x.num = 65;``    ``x.alpha = ``'A'``;` `    ``// Note that members of union are accessed directly``    ``printf``(``"x.alpha = %c, x.num = %d"``, x.alpha, x.num);` `    ``return` `0;``}`
Output
`x.alpha = A, x.num = 65`

## C

 `// C Program to demonstrate working of anonymous struct``#include``struct` `Scope``{``    ``// Anonymous structure``    ``struct``    ``{``        ``char` `alpha;``        ``int` `num;``    ``};``};` `int` `main()``{``    ``struct` `Scope x;``    ``x.num = 65;``    ``x.alpha = ``'B'``;` `    ``// Note that members of structure are accessed directly``    ``printf``(``"x.alpha = %c, x.num = %d"``, x.alpha, x.num);` `    ``return` `0;``}`
Output
`x.alpha = B, x.num = 65`