methodologies

structured programming

Think of data as a structure modelling a conceptual thing (rather than a set of numbers). Routines are thought of as operations on such things.

modular programming

A module is a structure with behaviours, 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 this interface.

While modular programming is a more recent concept than C, the language is powerful enough to facilitate this methodology. (So can FORTRAN 90, but not FORTRAN 77.)

example:
modularized linked list header
modularized linked list source
complete list module header
complete string module header