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.
- code reads more like the problem at hand
- leads to simpler, more sensible code generally
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.
- tighter control of responsibility for manipulating data
- models the common human notion of an entity with behaviour
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