Object-oriented methodologies are much more recent than C, and are really beyond the language (that is the realm of C++).
Some older methodologies that can be followed in C are structured programming and modular programming.
structured programming
The C language was originally designed to be structured, to follow the structured programming methodologies.
A structure is dumb data that models a conceptual thing. (A Java programmer could think of it as a class without methods or inheritance.) Functions are thought of as operations on such things.
modular programming
A module is a structure with behaviors, which are routines tightly bound to the structure, forming the programming interface to the structure. Its implementation is hidden from the user — one accesses and manipulates internal structures solely through an interface.
Think of a module as a final class, with no inheritance.
- tighter control of responsibility for manipulating data
- models the common human notion of an entity with behavior
While modular programming is a more recent concept than C, the language is powerful enough to facilitate this methodology.
example:
modularized linked list header
modularized linked list source
complete list module header
complete string module header