Bodhak enums unions c tutorial & Enums in this Chapter we will discuss Introduction to Unions, Advantages of using unions, a syntax of unions, Difference between Structures and Unions, Nested unions, Writing structure within a union, Writing union within a structure, Introduction to enums, Advantages of using enums, syntax of enums.
Introduction to Unions: Union is a composite type similar to structure. Even though it has members of different data types, it can hold data of only one member at a time.
Enums unions C Tutorial
Unions are derived data types and are borrowed from structures by following the same syntax as that of structures
When a union is declared in above manner the amount of memory allocated to the union would be the size of the data item occupying max storage area.
i.e. name occupies 25 x 1=25bytes
avg occupies = 4 x 1 bytes
int roll occupies = 2 x 1 bytes.
As name occupies 25 bytes the amount of memory allocated in the union declaration would be 25 bytes.
Accessing union members would be same as that of structures.
Over here in the above example, we access the members as,
s1. name; s2. roll; s3. avg.
Note: In a union, the different members share the same memory location.
The total memory allocated to the union is equal to the maximum size of the member.
Since multiple members of different data types have the same location, the data is interpreted according to the type of the member
Advantages of using unions:
When the C compiler is allocating memory for unions it will always reserve enough room for the largest member. i.e unions save memory space.
C provides a facility called typedef for creating new data type names. For example, the declaration
When one union is declared as a member of another union then it is called as a union in union/ Nested union. When we declare the first unit as the member of another union the first unit is called as child and second is called as parent union.
As in structure within structure and union within structure here also child Union is declared outside the parent union. Only we have to declare a variable of child type union. To access the child union member first provide the parent union name followed by dot(.) followed by child union name followed by dot(.) followed by member name.