UNIONS
Unions are similar to structures except the fact that
memory allocated for a union variable is memory required for the largest field.
The only difference between the structure and union is
memory allocation.
Syntax:
Union
unionname
{
Datamember1;
Datamember2;
};
Example
#include<stdio.h>
#include<conio.h>
union emp
{
char
name[25];
int
idno;
float
salary;
}e1;
void main()
{
printf("Size
of union is %d",sizeof(e1));
}
Output
Size of union is 25
Example
#include<stdio.h>
#include<conio.h>
union emps
{
double
a;
float
b[2];
char
c[8];
}e1;
void main()
{
int
i;
clrscr();
e1.a=1355.674;
e1.b[0]=2.3;
e1.b[1]=4.5;
printf("Enter
8 characters string:");
for(i=0;i<8;i++)
scanf("%c",&e1.c[i]);
printf("%.3lf\n",e1.a);
printf("%.2f,%.2f\n",e1.b[0],e1.b[1]);
for(i=0;i<8;i++)
printf("%c\n",e1.c[i]);
getch();
}
Output:
Enter 8 characters string: asdgghjk
2.713061780997133810000000000000000000000e+209
1078827923249377390000000.00,283381667918681262000000000.00a
s
d
g
g
h
j
k
it allocates memory only to the largest data type size. In
this situation it allocates memory to string, the rest two values double and
float values are garbage values.
No comments:
Post a Comment