The subtitle, "Rev. ed. of: Topics in C Programming / Stephen G. Kochan, Patrick H. Wood. c1987," hints at its evolution, but the core premise remains: You already know the syntax. Now learn how to use it.
This book does not hold your hand. It challenges your assumptions about arrays, smashes your reliance on scanf , and forces you to respect the preprocessor. It is the intellectual bridge between a "C coder" and a "C systems programmer." Stephen G Kochan- Patrick H Wood Topics in C Programming
One of their legendary "Topics" is a hack to implement a buddy memory allocator from scratch. This exercise forces the reader to understand struct alignment, linked list management of free blocks, and the trade-offs between speed and space. Before C# delegates or C++ std::function , there were raw function pointers. Kochan and Wood treat this topic with unusual depth. They demonstrate how to build a generic sort function (similar to qsort ) that takes a comparison function pointer. But they go further: they build a simple event loop for a hypothetical GUI. The subtitle, "Rev
The answer lies in the foundations . The topics Kochan and Wood chose are low-level enough that standards have not invalidated them. The way a stack frame works, the way the heap organizes memory, and the way the preprocessor manipulates tokens are the same today as they were in 1991. Kochan, Patrick H
The book deliberately avoids rehashing if statements or for loops. Instead, it focuses on high-leverage, dangerous, and powerful areas of the language that introductory texts ignore. The "Topics" approach is what makes it timeless. Even though the book was written in the late 80s (with revisions in 1991), the topics it covers are the same ones that trip up modern C developers on Arduino, embedded Linux, or high-frequency trading systems. Let's analyze the specific technical domains that Kochan and Wood mastered in their collaboration. 1. Advanced Pointer Arithmetic and Polymorphism Most introductory books teach that a pointer holds an address. Kochan and Wood dedicate significant real estate to pointer polymorphism —the idea that a void * can morph into any data type. However, their unique contribution is the discussion of opaque pointers .
While you may find PDFs of out-of-print copies, treat the knowledge with reverence. The topics within—pointers to pointers, multi-file projects, bitwise manipulation, and setjmp/longjmp—are the secret vocabulary of the elite C developer. And nobody taught that vocabulary better than Kochan and Wood.
The exercise involves creating an array of function pointers to act as a dispatch table. This replaces a monstrous switch statement with a more elegant, data-driven approach. For a book in 1991, this was remarkably forward-thinking. One might ask: "Why read a 30-year-old book when modern C standards (C11, C17, C23) exist?"