The C programming language has many built-in data types. Users can create their own custom data types in 5 ways: bit-field, structure, union, typedef, and enumeration. Structure and Union are both user-defined data types. A structure is a user-defined, custom data type in C language which allows combining data items of different types under a single unit. A union is a data type that allows storing different data types in the same memory location. Several members can initialise at once in a structure, while only the first union member can be initialised. The keyword `struct’ is used to define a structure, while the keyword `union’ is used to define a union. Also, altering the value of one member in a structure will not affect the members of other structures. On the contrary, altering the value of a member of the Union will alter other members' values.