Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Practical C Programming, 3rd Edition
SPECIAL OFFER: Upgrade this ebook with O’Reilly
A Note Regarding Supplemental Files
Preface
How This Book is Organized
Chapter by Chapter
Notes on the Third Edition
Font Conventions
Obtaining Source Code
FTP
FTPMAIL
Comments and Questions
Acknowledgments
Acknowledgments to the Third Edition
I. Basics
1. What Is C?
How Programming Works
Brief History of C
How C Works
How to Learn C
2. Basics of Program Writing
Programs from Conception to Execution
Wrappers
Creating a Real Program
Creating a Program Using a Command-Line Compiler
Step 1. Create a Place for Your Program
Step 2. Create the Program
Step 3. Run the Compiler
UNIX cc compiler (generic UNIX)
Free Software Foundation’s gcc compiler
Borland’s Turbo C++ under MS-DOS
Borland C++ under MS-DOS and Windows
Microsoft Visual C++
Step 4. Execute the Program
Creating a Program Using an Integrated Development Environment
Step 1. Create a Place for Your Program
Step 2. Enter, Compile, and Run Your Program Using the IDE
Turbo C++
Borland C++
Microsoft Visual C++
Getting Help on UNIX
Getting Help in an Integrated Development Environment
IDE Cookbooks
Turbo C++
Borland C++
Microsoft Visual C++
Programming Exercises
3. Style
Common Coding Practices
Coding Religion
Indentation and Code Format
Clarity
Simplicity
Summary
4. Basic Declarations and Expressions
Elements of a Program
Basic Program Structure
Simple Expressions
Variables and Storage
Variable Declarations
Integers
Assignment Statements
printf Function
Floating Point
Floating Point Versus Integer Divide
Characters
Answers
Programming Exercises
5. Arrays, Qualifiers, and Reading Numbers
Arrays
Strings
Reading Strings
Multidimensional Arrays
Reading Numbers
Initializing Variables
Types of Integers
Types of Floats
Constant Declarations
Hexadecimal and Octal Constants
Operators for Performing Shortcuts
Side Effects
++x or x++
More Side-Effect Problems
Answers
Programming Exercises
6. Decision and Control Statements
if Statement
else Statement
How Not to Use strcmp
Looping Statements
while Statement
break Statement
continue Statement
Assignment Anywhere Side Effect
Answer
Programming Exercises
7. Programming Process
Setting Up
Specification
Code Design
Prototype
Makefile
Generic UNIX
UNIX with the Free Software Foundation’s gcc Compiler
Borland C++
Turbo C++
Visual C++
Testing
Debugging
Maintenance
Revisions
Electronic Archaeology
Marking Up the Program
Using the Debugger
Text Editor as a Browser
Add Comments
Programming Exercises
II. Simple Programming
8. More Control Statements
for Statement
switch Statement
switch, break, and continue
Answers
Programming Exercises
9. Variable Scope and Functions
Scope and Class
Functions
Functions with No Parameters
Structured Programming
Recursion
Answers
Programming Exercises
10. C Preprocessor
#define Statement
#define vs. const
Conditional Compilation
include Files
Parameterized Macros
Advanced Features
Summary
Answers
Programming Exercises
11. Bit Operations
Bit Operators
The and Operator (&)
Bitwise or (|)
The Bitwise Exclusive or (^)
The Ones Complement Operator (Not) (~)
The Left- and Right-Shift Operators (<<, >>)
Right-Shift Details
Setting, Clearing, and Testing Bits
Bitmapped Graphics
Answers
Programming Exercises
12. Advanced Types
Structures
Unions
typedef
enum Type
Casting
Bit Fields or Packed Structures
Arrays of Structures
Summary
Programming Exercises
13. Simple Pointers
Pointers as Function Arguments
const Pointers
Pointers and Arrays
How Not to Use Pointers
Using Pointers to Split a String
Pointers and Structures
Command-Line Arguments
Programming Exercises
Answers
14. File Input/Output
Conversion Routines
Binary and ASCII Files
The End-of-Line Puzzle
Binary I/O
Buffering Problems
Unbuffered I/O
Designing File Formats
Answers
Programming Exercises
15. Debugging and Optimization
Debugging
Divide and Conquer
Debug-Only Code
Debug Command-Line Switch
Going Through the Output
Interactive Debuggers
Debugging a Binary Search
Runtime Errors
The Confessional Method of Debugging
Optimization
The Power of Powers of 2
How to Optimize
Answers
Programming Exercises
16. Floating Point
Floating-Point Format
Floating Addition/Subtraction
Multiplication
Division
Overflow and Underflow
Roundoff Error
Accuracy
Minimizing Roundoff Error
Determining Accuracy
Precision and Speed
Power Series
Programming Exercises
III. Advanced Programming Concepts
17. Advanced Pointers
Pointers and Structures
free Function
Linked List
Structure Pointer Operator
Ordered Linked Lists
Double-Linked Lists
Trees
Printing a Tree
Rest of Program
Data Structures for a Chess Program
Answers
Programming Exercises
18. Modular Programming
Modules
Public and Private
The extern Modifier
Headers
The Body of the Module
A Program to Use Infinite Arrays
The Makefile for Multiple Files
Using the Infinite Array
Makefile for UNIX Generic C
Makefile for Free Software Foundation’s gcc
Makefile for Turbo C++
Makefile for Borland C++
Makefile for Microsoft Visual C++
Dividing a Task into Modules
Module Division Example: Text Editor
Compiler
Spreadsheet
Module Design Guidelines
Programming Exercises
19. Ancient Compilers
K&R-Style Functions
Function Prototypes
Library Changes
Missing Features
Free/Malloc Changes
lint
Answers
20. Portability Problems
Modularity
Word Size
Byte Order Problem
Alignment Problem
NULL Pointer Problem
Filename Problems
File Types
Summary
Answers
21. C’s Dustier Corners
do/while
goto
The ?: Construct
The , Operator
volatile Qualifier
Answer
22. Putting It All Together
Requirements
Specification
Code Design
Token Module
Input Module
How not to design an input module
A better input module
Character Type Module
Statistics Submodules
Coding
Functional Description
ch_type Module
in_file Module
token Module
Line Counter Submodule (lc)
Brace Counter Submodule (bc)
Parentheses Counter Submodule (pc)
Comment Counter Submodule (cc)
do_file Procedure
Expandability
Testing
Revisions
A Final Warning
Program Files
The in_file.h File
The in_file.c File
The ch_type.h File
The ch_type.c File
The token.h File
The token.c File
The stat.c File
UNIX Makefile for CC (Generic Unix)
UNIX Makefile for gcc
Turbo C++ Makefile
Borland C++ Makefile
Microsoft Visual C++ Makefile
Programming Exercises
23. Programming Adages
General
Design
Declarations
switch Statement
Preprocessor
Style
Compiling
Final Note
Answer
IV. Other Language Features
A. ASCII Table
B. Ranges and Parameter Passing Conversions
Ranges
Automatic Type Conversions to Use When Passing Parameters
C. Operator Precedence Rules
Standard Rules
Practical Subset
D. A Program to Compute a Sine Using a Power Series
The sine.c Program
Glossary
Index
About the Author
Colophon
SPECIAL OFFER: Upgrade this ebook with O’Reilly
← Prev
Back
Next →
← Prev
Back
Next →