The differences between structures and unions in C language are explained below −
| S.No | Structure | Union |
|---|---|---|
| 1 | Definition Structure is heterogenous collection of data items grouped together under a single name | Definition A union is a memory location that is shared by several variables of different datatypes. |
| 2 | Syntax;struct tagname{
datatype member1;
datatype member2;
----
----
----
}; | Syntax;union tagname{
datatype member1;
datatype member2;
----
----
----
}; |
| 3 | Eg;struct sample{
int a;
float b;
char c;
}; | Eg;union sample{
int a;
float b;
char c;
}; |
| 4 | keyword − struct | keyword − union |
| 5 | Memory allocation | Memory allocation |
| 6 | ![]() | ![]() |
| 7 | Memory allocated is the sum of sizes of all datatypes in structure(Here, 7bytes) | Memory allocated is the maximum size allocated among all the datatypes in union(Here, 4bytes) |
| 8 | Memory is allocated for all the members of the structure differently | Only one member will be residing in the memory at any particular instance |
Example
Following is the C program for structures −
#include<stdio.h>
struct size{
double a;
int b;
char c;
float d;
};
int main(){
printf("%ld",sizeof( stuct size));
}Output
When the above program is executed, it produces the following result −
24
Example
Following is the C program on union −
#include<stdio.h>
union size{
double a;
int b;
char c;
float d;
}
Int main(){
Printf("ld",sizeof(union size));
}Output
When the above program is executed, it produces the following result −
8

