Use of Struct, Union and Enum in C Programming Language


Use of Struct, Union and Enum in C Programming Language

The C programming language is still one of the most popular and powerful languages for low-level applications such as system programming and embedded systems. C provides unique opportunities to manage data structures and create more complex data types. Foremost among these are struct (structure), union (union), and enum (enumeration). In this article, you will discover the basic theory, their differences, and practical applications with example code on "Use of Struct, Union and Enum in C Programming Language".

What are Struct, Union and Enum?

Struct (Structure)

Struct is a user-defined data type in C programming language that brings together several different data types under one roof. It is especially used to process interrelated data as a group.

struct Student {
    char name[30];
    int age;
    double grade_average;
};

In the example above, a struct named Student is defined. In this way, a student's name, age, and grade average can be stored in a single variable.

Union (Union)

Union is defined similarly to struct; however, it is used to store different data types sharing the same memory area. In a union, only one field can be active at a time, therefore saving memory.

union Data {
    int integer;
    float decimal;
    char character;
};

In this example, with the Data union, either an integer, a decimal number, or a character can be stored, not all at the same time.

Enum (Enumeration)

Enum is used to give names to constant integer values to be used in the program. It provides readability and increases the maintainability of the code.

enum Color {
    RED,
    GREEN,
    BLUE
};

Thus, using RED in your code is much more understandable than using a value like 0 directly.

Using Struct in C Programming Language

Using struct offers significant advantages, especially in data modeling. You can create a struct variable and assign values to it:

struct Student student1;
strcpy(student1.name, "Ali");
student1.age = 20;
student1.grade_average = 92.5;

You can send structure variables as parameters to functions and even achieve efficient performance in memory by using pointers.

Using Union in C Programming Language

Union data types are ideal for saving a significant amount of memory when only one type of data is needed. Below is a basic union usage:

union Data data1;
data1.integer = 42;
printf("Integer: %d\n", data1.integer);
data1.decimal = 3.14;
printf("Decimal: %f\n", data1.decimal);

When a new value is assigned to a union, the previous value is lost. Therefore, you should always read the most recently assigned value.

Using Enum in C Programming Language

Enum types are very suitable for use in conditional statements or in cases where key-value pairing is required.

enum Color color1 = BLUE;
if (color1 == BLUE) {
    printf("Selected color is blue!\n");
}

This way, queries in the code like "Is this blue?" are both readable and less prone to errors.

Conclusion and Tips

Thanks to the "Use of Struct, Union and Enum in C Programming Language," you can make your structures more flexible and powerful. Struct is ideal for grouping data; union for saving memory; and enum for making your code more readable and manageable. Be careful to choose the correct data type when planning your code. All these concepts are indispensable for professional C developers.