Differences between Structure and Union in C | C programming


A structure is a user-defined data type available in C that allows to combining data items of different kinds. Structures are used to represent a record.

Defining a structure: To define a structure, you must use the struct statement. The struct statement defines a new data type, with more than one member. The format of the struct statement is as follows:

   struct [structure name]
       member definition;
       member definition;
       member definition;


A union is a special data type available in C that allows storing different data types in the same memory location. You can define a union with many members, but only one member can contain a value at any given time. Unions provide an efficient way of using the same memory location for multiple purposes.

Defining a Union: To define a union, you must use the union statement in the same way as you did while defining a structure. The union statement defines a new data type with more than one member for your program. The format of the union statement is as follows:

    union [union name]
       member definition;
       member definition;
       member definition;

Similarities between Structure and Union

1.     Both are user-defined data types used to store data of different types as a single unit.
2.     Their members can be objects of any type, including other structures and unions or arrays. A member can also consist of a bit field.
3.     Both structures and unions support only assignment = and sizeof operators. The two structures or unions in the assignment must have the same members and member types.
4.     A structure or a union can be passed by value to functions and returned by value by functions. The argument must have the same type as the function parameter. A structure or union is passed by value just like a scalar variable as a corresponding parameter.
5.     ‘.’ operator is used for accessing members.


The keyword struct is used to define structure.
The keyword union is used to define Union.
When a variable is associated with a structure, the compiler allocates the memory for each size of its member. The size of the structure is greater than or equal to the sum of sizes of its members.
When a variable is associated with a union, the compiler allocates the memory by considering size of the largest memory. So, size of union is equal to the size of largest member.
Each member within a structure is assigned unique storage area of location.
Memory allocates is shared by individual members of union.
Value Altering
Altering the value of a member will not affect other members of the structure.
Altering the value of any of the member will alter other member values.
Accessing members
Individual member can be accessed at a time.
Only one member can be accessed at a time.
Several members of a structure can be initialized at once
Only the first member of a union can be initialized.
At last I think, structure is better because as memory is shared in union ambiguity is more.


More Differences

Differences Between puts and gets in C

Differences Between Break and Continue

Post a Comment