| |
| |
Preface | |
| |
| |
| |
Language | |
| |
| |
| |
Language Basics | |
| |
| |
Characteristics of C | |
| |
| |
The Structure of C Programs | |
| |
| |
Source Files | |
| |
| |
Comments | |
| |
| |
Character Sets | |
| |
| |
Identifiers | |
| |
| |
How the C Compiler Works | |
| |
| |
| |
Types | |
| |
| |
Typology | |
| |
| |
Integer Types | |
| |
| |
Floating-Point Types | |
| |
| |
Complex Floating-Point Types (C99) | |
| |
| |
Enumerated Types | |
| |
| |
The Type void | |
| |
| |
| |
Literals | |
| |
| |
Integer Constants | |
| |
| |
Floating-Point Constants | |
| |
| |
Character Constants | |
| |
| |
String Literals | |
| |
| |
| |
Type Conversions | |
| |
| |
Conversion of Arithmetic Types | |
| |
| |
Conversion of Nonarithmetic Types | |
| |
| |
| |
Expressions and Operators | |
| |
| |
How Expressions Are Evaluated | |
| |
| |
Operators in Detail | |
| |
| |
Constant Expressions | |
| |
| |
| |
Statements | |
| |
| |
Expression Statements | |
| |
| |
Block Statements | |
| |
| |
Loops | |
| |
| |
Selection Statements | |
| |
| |
Unconditional Jumps | |
| |
| |
| |
Functions | |
| |
| |
Function Definitions | |
| |
| |
Function Declarations | |
| |
| |
How Functions Are Executed | |
| |
| |
Pointers as Arguments and Return Values | |
| |
| |
Inline Functions | |
| |
| |
Recursive Functions | |
| |
| |
Variable Numbers of Arguments | |
| |
| |
| |
Arrays | |
| |
| |
Defining Arrays | |
| |
| |
Accessing Array Elements | |
| |
| |
Initializing Arrays | |
| |
| |
Strings | |
| |
| |
Multidimensional Arrays | |
| |
| |
Arrays as Arguments of Functions | |
| |
| |
| |
Pointers | |
| |
| |
Declaring Pointers | |
| |
| |
Operations with Pointers | |
| |
| |
Pointers and Type Qualifiers | |
| |
| |
Pointers to Arrays and Arrays of Pointers | |
| |
| |
Pointers to Functions | |
| |
| |
| |
Structures, Unions, and Bit-Fields | |
| |
| |
Structures | |
| |
| |
Unions | |
| |
| |
Bit-Fields | |
| |
| |
| |
Declarations | |
| |
| |
General Syntax | |
| |
| |
Type Names | |
| |
| |
Typedef Declarations | |
| |
| |
Linkage of Identifiers | |
| |
| |
Storage Duration of Objects | |
| |
| |
Initialization | |
| |
| |
| |
Dynamic Memory Management | |
| |
| |
Allocating Memory Dynamically | |
| |
| |
Characteristics of Allocated Memory | |
| |
| |
Resizing and Releasing Memory | |
| |
| |
An All-Purpose Binary Tree | |
| |
| |
Characteristics | |
| |
| |
Implementation | |
| |
| |
| |
Input and Output | |
| |
| |
Streams | |
| |
| |
Files | |
| |
| |
Opening and Closing Files | |
| |
| |
Reading and Writing | |
| |
| |
Random File Access | |
| |
| |
| |
Preprocessing Directives | |
| |
| |
Inserting the Contents of Header Files | |
| |
| |
Defining and Using Macros | |
| |
| |
Conditional Compiling | |
| |
| |
Defining Line Numbers | |
| |
| |
Generating Error Messages | |
| |
| |
The #pragma Directive | |
| |
| |
The_Pragma Operator | |
| |
| |
Predefined Macros | |
| |
| |
| |
Standard Library | |
| |
| |
| |
The Standard Headers | |
| |
| |
Using the Standard Headers | |
| |
| |
Contents of the Standard Headers | |
| |
| |
| |
Functions at a Glance | |
| |
| |
Input and Output | |
| |
| |
Mathematical Functions | |
| |
| |
Character Classification and Conversion | |
| |
| |
String Processing | |
| |
| |
Multibyte Characters | |
| |
| |
Converting Between Numbers and Strings | |
| |
| |
Searching and Sorting | |
| |
| |
Memory Block Handling | |
| |
| |
Dynamic Memory Management | |
| |
| |
Date and Time | |
| |
| |
Process Control | |
| |
| |
Internationalization | |
| |
| |
Nonlocal Jumps | |
| |
| |
Debugging | |
| |
| |
Error Messages | |
| |
| |
| |
Standard Library Functions | |
| |
| |
| |
Basic Tools | |
| |
| |
| |
Compiling with GCC | |
| |
| |
The GNU Compiler Collection | |
| |
| |
Obtaining and Installing GCC | |
| |
| |
Compiling C Programs with GCC | |
| |
| |
C Dialects | |
| |
| |
Compiler Warnings | |
| |
| |
Optimization | |
| |
| |
Debugging | |
| |
| |
Profiling | |
| |
| |
Option and Environment Variable Summary | |
| |
| |
| |
Using make to Build C Programs | |
| |
| |
Targets, Prerequisites, and Commands | |
| |
| |
The Makefile | |
| |
| |
Rules | |
| |
| |
Comments | |
| |
| |
Variables | |
| |
| |
Phony Targets | |
| |
| |
Other Target Attributes | |
| |
| |
Macros | |
| |
| |
Functions | |
| |
| |
Directives | |
| |
| |
Running make | |
| |
| |
| |
Debugging C Programs with GDB | |
| |
| |
Installing GDB | |
| |
| |
A Sample Debugging Session | |
| |
| |
Starting GDB | |
| |
| |
Using GDB Commands | |
| |
| |
Index | |