The C Book — Table of Contents
This is the online version of The CBook, second
edition by Mike Banahan, Declan Brady and Mark Doran, originally
published by Addison Wesley in 1991. This version is made
freely available.
While this book is no longer in print, its content is still very
relevant today. The C language is still popular, particularly for
open
source software and
embedded programming.
We hope this book will be useful, or at least interesting, to people who
useC.
If you have any comments about this book, or if you find any bugs
in its presentation, please send a message to
consulting@gbdirect.co.uk.
Although we ourselves do not have the time and tools to prepare this book in PDF format, we are very grateful to Professor Carlos José de Almeida Pereira of the University Estadual de Santa Cruz in Brazil for his work which he modestly describes as 'simply printing your "printer friendly" pages to a PDF file'.
The pdf file of the book that he has produced in this way was made available here on 6th March 2007 and currently should be the same as the contents of this site, no updates having been made since the single file was produced.
An alternative version in pdf was later submitted in July 2010 by Ward van Wanrooij - you can download his version here. We make no representations for the accuracy or otherwise of either pdf version.
-
Preface
- About This Book
- The Success ofC
- Standards
- Hosted and Free-Standing Environments
- Typographical conventions
- Order of topics
- Example programs
- Deference to Higher Authority
- Address for the Standard
-
Chapter1. An Introduction toC
- 1.1. The form of a Cprogram
- 1.2. Functions
- 1.3. A description of Example1.1
- 1.4. Some more programs
- 1.5. Terminology
- 1.6. Summary
- 1.7. Exercises
-
Chapter2. Variables and Arithmetic
- 2.1. Some fundamentals
- 2.2. The alphabet ofC
- 2.3. The Textual Structure of Programs
- 2.4. Keywords and identifiers
- 2.5. Declaration of variables
- 2.6. Real types
- 2.7. Integral types
- 2.8. Expressions and arithmetic
- 2.9. Constants
- 2.10. Summary
- 2.11. Exercises
-
Chapter3. Control of Flow and Logical Expressions
- 3.1. The Task ahead
- 3.2. Control of flow
- 3.3. More logical expressions
- 3.4. Strange operators
- 3.5. Summary
- 3.6. Exercises
-
Chapter4. Functions
- 4.1. Changes
- 4.2. The type of functions
- 4.3. Recursion and argument passing
- 4.4. Linkage
- 4.5. Summary
- 4.6. Exercises
-
Chapter5. Arrays and Pointers
- 5.1. Opening shots
- 5.2. Arrays
- 5.3. Pointers
- 5.4. Character handling
- 5.5.
Sizeof
and storage allocation - 5.6. Pointers to functions
- 5.7. Expressions involving pointers
- 5.8. Arrays, the
&
operator and function
declarations - 5.9. Summary
- 5.10. Exercises
-
Chapter6. Structured Data Types
- 6.1. History
- 6.2. Structures
- 6.3. Unions
- 6.4. Bitfields
- 6.5. Enums
- 6.6. Qualifiers and derived types
- 6.7. Initialization
- 6.8. Summary
- 6.9. Exercises
-
Chapter7. The Preprocessor
- 7.1. Effect of the Standard
- 7.2. How the preprocessor works
- 7.3. Directives
- 7.4. Summary
- 7.5. Exercises
-
Chapter8. Specialized Areas ofC
- 8.1. Government Health Warning
- 8.2. Declarations, Definitions and Accessibility
- 8.3.
Typedef
- 8.4.
Const
andvolatile
- 8.5. Sequence points
- 8.6. Summary
-
Chapter9. Libraries
- 9.1. Introduction
- 9.2. Diagnostics
- 9.3. Character handling
- 9.4. Localization
- 9.5. Limits
- 9.6. Mathematical functions
- 9.7. Non-local jumps
- 9.8. Signal handling
- 9.9. Variable numbers of arguments
- 9.10. Input and output
- 9.11. Formatted I/O
- 9.12. Character I/O
- 9.13. Unformatted I/O
- 9.14. Random access functions
- 9.15. General Utilities
- 9.16. String handling
- 9.17. Date and time
- 9.18. Summary
-
Chapter10. Complete Programs in C
- 10.1. Putting it all together
- 10.2. Arguments to
main
- 10.3. Interpreting program arguments
- 10.4. A pattern matching program
- 10.5. A more ambitious example
- 10.6. Afterword
-
Answers to Exercises
- Chapter1
- Chapter2
- Chapter3
- Chapter4
- Chapter5
- Chapter6
- Chapter7
- Copyright and disclaimer