C in a Nutshell (Paperback)

Peter Prinz, Tony Crawford

  • 出版商: O'Reilly
  • 出版日期: 2005-12-26
  • 售價: $1,440
  • 貴賓價: 9.5$1,368
  • 語言: 英文
  • 頁數: 622
  • 裝訂: Paperback
  • ISBN: 0596006977
  • ISBN-13: 9780596006976
  • 相關分類: C 程式語言
  • 已絕版




Learning a language--any language--involves a process wherein you learn to rely less and less on instruction and more increasingly on the aspects of the language you've mastered. Whether you're learning French, Java, or C, at some point you'll set aside the tutorial and attempt to converse on your own. It's not necessary to know every subtle facet of French in order to speak it well, especially if there's a good dictionary available. Likewise, C programmers don't need to memorize every detail of C in order to write good programs. What they need instead is a reliable, comprehensive reference that they can keep nearby. C in a Nutshell is that reference.

This long-awaited book is a complete reference to the C programming language and C runtime library. Its purpose is to serve as a convenient, reliable companion in your day-to-day work as a C programmer. C in a Nutshell covers virtually everything you need to program in C, describing all the elements of the language and illustrating their use with numerous examples.

The book is divided into three distinct parts. The first part is a fast-paced description, reminiscent of the classic Kernighan & Ritchie text on which many C programmers cut their teeth. It focuses specifically on the C language and preprocessor directives, including extensions introduced to the ANSI standard in 1999. These topics and others are covered:

  • Numeric constants
  • Implicit and explicit type conversions
  • Expressions and operators
  • Functions
  • Fixed-length and variable-length arrays
  • Pointers
  • Dynamic memory management
  • Input and output

The second part of the book is a comprehensive reference to the C runtime library; it includes an overview of the contents of the standard headers and a description of each standard library function. Part III provides the necessary knowledge of the C programmer's basic tools: the compiler, the make utility, and the debugger. The tools described here are those in the GNU software collection.

Table of Contents


I. Language

1. Language Basics

     Characteristics of C

     The Structure of C Programs

     Source Files


     Character Sets


     How the C Compiler Works

2. Types


     Integer Types

     Floating-Point Types

     Complex Floating-Point Types (C99)

     Enumerated Types

     The Type void

3. Literals

     Integer Constants

     Floating-Point Constants

     Character Constants

     String Literals

4. Type Conversions

     Conversion of Arithmetic Types

     Conversion of Nonarithmetic Types

5. Expressions and Operators

     How Expressions Are Evaluated

     Operators in Detail

     Constant Expressions

6. Statements

     Expression Statements

     Block Statements


     Selection Statements

     Unconditional Jumps

7. Functions

     Function Definitions

     Function Declarations

     How Functions Are Executed

     Pointers as Arguments and Return Values

     Inline Functions

     Recursive Functions

     Variable Numbers of Arguments

8. Arrays

     Defining Arrays

     Accessing Array Elements

     Initializing Arrays


     Multidimensional Arrays

     Arrays as Arguments of Functions

9. Pointers

     Declaring Pointers

     Operations with Pointers

     Pointers and Type Qualifiers

     Pointers to Arrays and Arrays of Pointers

     Pointers to Functions

10. Structures, Unions, and Bit-Fields




11. Declarations

     General Syntax

     Type Names

     typedef Declarations

     Linkage of Identifiers

     Storage Duration of Objects


12. Dynamic Memory Management

     Allocating Memory Dynamically

     Characteristics of Allocated Memory

     Resizing and Releasing Memory

     An All-Purpose Binary Tree



13. Input and Output



     Opening and Closing Files

     Reading and Writing

     Random File Access

14. 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

II. Standard Library

15. The Standard Headers

     Using the Standard Headers

     Contents of the Standard Headers

16. 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


     Nonlocal Jumps


     Error Messages

17. Standard Library Functions

III. Basic Tools

18. Compiling with GCC

     The GNU Compiler Collection

     Obtaining and Installing GCC

     Compiling C Programs with GCC

     C Dialects

     Compiler Warnings




     Option and Environment Variable Summary

19. Using make to Build C Programs

     Targets, Prerequisites, and Commands

     The Makefile




     Phony Targets

     Other Target Attributes




     Running make

20. Debugging C Programs with GDB

     Installing GDB

     A Sample Debugging Session

     Starting GDB

     Using GDB Commands