Differences between Structure and Union in C | C programming



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:
   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


  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.


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.

Popular posts from this blog

C Program for SCAN Disk Scheduling Algorithm | C Programming

C Program To Check The String Is Valid Identifier Or Not | C Programming