About this book
This book describes the C programming language and software engineering prin ciples of program construction. The book is intended primarily as a textbook for beginning and intermediate C programmers. It does not assume previous knowl edge of C, nor of any high-level language, though it does assume that the reader has some familiarity with computers. While not essential, knowledge of another programming language will certainly help in mastering C. Although the subject matter of this book is the C language, the emphasis is on software engineering-making programs readable, maintainable, portable, and efficient. One of our main goals is to impress upon readers that there is a huge difference between programs that merely work, and programs that are well engi neered, just as there is a huge difference between a log thrown over a river and a well-engineered bridge. The book is organized linearly so that each chapter builds on information provided in the previous chapters. Consequently, the book will be most effective if chapters are read sequentially. Readers with some experience in C, however, may find it more useful to consult the table of contents and index to find sections of particular interest.
ANSI C C programming language Debugging Strings algorithms data types design functions high-level programming language language programming programming language software software engineering standards