#include #include Define a structure struct Student { int id; float marks; char grade; }; // Define a union union Data { int intValue; float floatValue; char str[10]; }; int main() { // Structure example struct Student s1 = {101, 95.5, 'A'}; printf("=== Structure Example ===\n"); printf("ID: %d\n", s1.id); printf("Marks: %.2f\n", s1.marks); printf("Grade: %c\n", s1.grade); printf("Size of structure = %zu bytes\n\n", sizeof(s1)); // Union example union Data d1; printf("=== Union Example ===\n"); d1.intValue = 25; printf("After assigning intValue:\n"); printf("intValue = %d\n", d1.intValue); d1.floatValue = 12.5; printf("\nAfter assigning floatValue:\n"); printf("floatValue = %.2f\n", d1.floatValue); printf("intValue (overwritten) = %d\n", d1.intValue); // overwritten strcpy(d1.str, "Hello"); printf("\nAfter assigning str:\n"); printf("str = %s\n", d1.str); printf("floatValue (overwritten) = %.2f\n", d1.floatValue); // corrupted printf("Size of union = %zu bytes\n", sizeof(d1)); return 0; }