There are a lot of excellent answers how can one simulate object oriented concepts with C. To name a few:
- C double linked list with abstract data type
- C as an object oriented language
- Can you write object-oriented code in C?
When is it appropriate to use such simulation and not to use languages that support object-oriented techniques natively?
Highly related: