A union contains different types of variables as its members and all these members share a memory location. In this article, we will learn how to declare and access the struct member inside a union in C++.
Structure Inside Union in C
To declare a structure inside a union we can use the below syntax:
Syntax to Declare Structure Inside Union in C
union unionName { struct structName structVar; // Struct as a member of the union };
Here, structName is the name of the structure defined somewhere before the union declaration.
We can also declare the structure member directly inside the union as shown:
union unionName {
struct structName {
struct_member1;
struct_member2;
}structVar; // Struct as a member of the union
};
C Program to Declare Structure Inside Union
The below program demonstrates how we can declare a structure inside a union in C.
// C Program to declare struct inside union
#include <stdio.h>
// Define a struct
struct Point {
int x;
int y;
};
// Define a union with a struct as a member
union Data {
int num;
char ch;
struct Point point; // Struct inside the union
};
int main()
{
// Declare and initialize a union variable
union Data data;
// Access and modify members of the union
data.num = 42;
printf("Number: %d\n", data.num);
data.ch = 'A';
printf("Character: %c\n", data.ch);
data.point.x = 10;
data.point.y = 20;
// print the data
printf("Point: (%d, %d)\n", data.point.x, data.point.y);
return 0;
}
Output
Number: 42 Character: A Point: (10, 20)