Every programmer and software project manager must master the art of creating reusable software modules; they are the building blocks of large, reliable applications. Unlike some modern object-oriented languages, C provides little linguistic support or motivation for creating reusable application programming interfaces (APIs). While most C programmers use APIs and the libraries that implement them in almost every application they write, relatively few programmers create and disseminate new, widely applicable APIs. C Interfaces and Implementations shows how to create reusable APIs using interface-based design, a language-independent methodology that separates interfaces from their implementations. This methodology is explained by example. The author describes in detail 24 interfaces and their implementations, providing the reader with a thorough understanding of this design approach.
Features of C Interfaces and Implementations:
Concise interface descriptions that comprise a reference manual for programmers interested in using the interfaces.
A guided tour of the code that implements each chapter's interface tp help those modifying or extending an interface or designing related interfaces.
In-depth focus on "algorithm engineering:" how to package data structures and related algorithms into reusable modules.
Source code for 24 APIs and 8 sample applications is examined, with each presented as a "literate program" in which a thorough explanation is interleaved with the source code.
Rarely documented C programming tricks-of-the-trade.
Convenient access to all source code in the book via the World Wide Web at http://www.cs.princeton.edu/software/cii/