STRUCTURE IN C
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:
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;
};
UNION IN C
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
- Both are user-defined data types used to store data of different types as a single unit.
- Their members can be objects of any type, including other structures and unions or arrays. A member can also consist of a bit field.
- 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.
- 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.
- ‘.’ operator is used for accessing members.
Differences
Structure | Union | |
Keyword | The keyword struct is used to define structure. | The keyword union is used to define Union. |
Size | 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 the sizes of its members. | When a variable is associated with a union, the compiler allocates the memory by considering the size of the largest memory. So, the size of the union is equal to the size of the largest member. |
Memory | Each member within a structure is assigned a unique storage area of location. | Memory allocation is shared by individual members of the union. |
Value Altering | Altering the value of a member will not affect other members of the structure. | Altering the value of any of the members will alter other members' values. |
Accessing members | Individual members can be accessed at a time. | Only one member can be accessed at a time. |
Initialization | Several members of a structure can be initialized at once | Only the first member of a union can be initialized. |
At last, I think, the structure is better because as memory is shared in union ambiguity is more.