INTRODUCTION:
A common paradigm used in programming languages like C++ is called object-oriented programming (OOP). Even though C is a procedural programming language, some OOP principles and techniques can still be used. In this post, we’ll look at the fundamentals of OOP in C programming and how to put them into practise.
Abstraction:
Abstraction is the technique of keeping a program’s internal workings hidden from the user and showing them only its most crucial aspects. The use of structures and function prototypes in C allows for abstraction. We may make data easier to comprehend and work with by designing a structure that groups relevant data together into a single entity. Function prototypes can be used to merely display the input and output of a function, hiding the implementation details from the user.
Encapsulation:
Data and functions that work on that data are combined into a single entity through the process of encapsulation. In C, we can use structures and functions to encapsulate data and functions. While functions can be used to carry out actions on the data, structures can be used to organise related data. Data and functions can be protected from unauthorised access and used properly by encapsulating both the data and the functions that use it.
Inheritance:
The technique of constructing a new class from an existing class is known as inheritance. In C, we can utilise structures to build a hierarchy of classes. We can reuse code and develop more sophisticated data structures by defining a base structure and creating child structures that inherit from the base structure.


Polymorphism:
Using a single interface to represent numerous implementations is known as polymorphism. The use of function pointers in the C programming language allows for polymorphism. We can design a single interface that can be used to invoke numerous functions by defining a function pointer and allocating it to various functions at runtime.
CONCLUSION:
Finally, despite the fact that C is not an object-oriented programming language, it is nevertheless possible to use some of the concepts and methods of OOP in C. Encapsulation, abstraction, inheritance, and polymorphism can all be achieved in C programming by employing structures, function prototypes, and function pointers. We can build more effective, reusable, and maintainable code with the aid of these strategies.