C: A Software Engineering Approach
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...
Main Authors: | , |
---|---|
Format: | eBook |
Language: | English |
Published: |
New York, NY
Springer New York
1991, 1991
|
Edition: | 2nd ed. 1991 |
Series: | Springer Books on Professional Computing
|
Subjects: | |
Online Access: | |
Collection: | Springer Book Archives -2004 - Collection details see MPG.ReNa |
Table of Contents:
- 12.3 Project Management and Cost Estimation
- 12.4 Software Tools for Software Production
- 12.5 Debugging
- 12.6 Testing
- 12.7 Performance Analysis
- 12.8 Documentation
- Exercises
- Appendix A: The ANSI Runtime Library
- A.1 Function Names
- A.2 Header Files
- A.3 Synopses
- A.4 Functions vs. Macros
- A.5 Error Handling
- A.6 Diagnostics
- A.7 Character Handling
- A.8 Setting Locale Parameters
- A.9 Mathematics
- A.10 Nonlocal Jumps
- A.11 Signal Handling
- A.12 Variable Argument Lists
- A.13 I/O Functions
- A.14 General Utilities
- A.15 String-Handling Functions
- A.16 Multibyte Character Functions
- A.17 Date and Time Functions
- Appendix B: Syntax of ANSI C
- Appendix C: Implementation Limits
- C.1 Translation Limits
- C.2 Numerical Limits
- Appendix D: Differences Between the ANSI and K&R Standards
- D.1 Source Translation Differences
- D.2 Data Type Differences
- D.3 Statement Differences
- D.4 Expression Differences
- 7.1 Fixed vs. Automatic Duration
- 7.2 Scope
- 7.3 Global Variables
- 7.4 The register Specifier
- 7.5 Summary of Storage Classes
- 7.6 Dynamic Memory Allocation
- Exercises
- 8 Structures and Unions
- 8.1 Structures
- 8.2 Linked Lists
- 8.3 Unions
- 8.4 enum Declarations
- Exercises
- 9 Functions
- 9.1 Passing Arguments
- 9.2 Declarations and Calls
- 9.3 Pointers to Functions
- 9.4 Recursion
- 9.5 The main() Function
- 9.6 Complex Declarations
- Exercises
- 10 The C Preprocessor
- 10.1 Macro Substitution
- 10.2 Conditional Compilation
- 10.3 Include Facility
- 10.4 Line Control
- Exercises
- 11 Input and Output
- 11.1 Streams
- 11.2 Buffering
- 11.3 The Header File
- 11.4 Error Handling
- 11.5 Opening and Closing a File
- 11.6 Reading and Writing Data
- 11.7 Selecting an I/O Method
- 11.8 Unbuffered I/O
- 11.9 Random Access
- Exercises
- 12 Software Engineering
- 12.1 Product Specification
- 12.2 Software Design
- D.5 Storage Class and Initialization Differences
- D.6 Preprocessor Differences
- Appendix E: Reserved Names
- Appendix F: C Interpreter Listing
- Appendix G: ASCII Codes
- 1 Introduction to Programming
- 1.1 High-Level Programming Languages
- 1.2 History of C
- 1.3 ANSI Standard
- 1.4 Nature of C
- 2 Essentials
- 2.1 Program Development
- 2.2 Functions
- 2.3 Anatomy of a C Function
- 2.4 Formatting Source Files
- 2.5 The main() Function
- 2.6 The printf() Function
- 2.7 The scanf() Function
- 2.8 The Preprocessor
- Exercises
- 3 Scalar Data Types
- 3.1 Declarations
- 3.2 Different Types of Integers
- 3.3 Different Kinds of Integer Constants
- 3.4 Floating-Point Types
- 3.5 Initialization
- 3.6 Mixing Types
- 3.7 Explicit Conversions — Casts
- 3.8 Enumeration Types
- 3.9 The void Data Type
- 3.10 Typedefs
- 3.11 Finding the Address of an Object
- 3.12 Introduction to Pointers
- Exercises
- 4 Control Flow
- 4.1 Conditional Branching
- 4.2 The switch Statement
- 4.3 Looping
- 4.4 Nested Loops
- 4.5 A Simple Calculator Program
- 4.6 The break and continue Statements
- 4.7 The goto Statement
- 4.8 Infinite Loops
- Exercises
- 5 Operators and Expressions
- 5.1 Precedence and Associativity
- 5.2 Unary Plus and Minus Operators
- 5.3 Binary Arithmetic Operators
- 5.4 Arithmetic Assignment Operators
- 5.5 Increment and Decrement Operators
- 5.6 Comma Operator
- 5.7 Relational Operators
- 5.8 Logical Operators
- 5.9 Bit-Manipulation Operators
- 5.10 Bitwise Assignment Operators
- 5.11 Cast Operator
- 5.12 sizeof operator
- 5.13 Conditional Operator (? :)
- 5.14 Memory Operators
- Exercises
- 6 Arrays and Pointers
- 6.1 Declaring an Array
- 6.2 How Arrays Are Stored in Memory
- 6.3 Initializing Arrays
- 6.4 Array Example: Encryption and Decryption
- 6.5 Pointer Arithmetic
- 6.6 Passing Pointers as Function Arguments
- 6.7 Accessing Array Elements Through Pointers
- 6.8 Passing Arrays as Function Arguments
- 6.9 Sorting Algorithms
- 6.10 Strings.-6.11 Multidimensional Arrays
- 6.12 Arrays of Pointers
- 6.13 Pointers to Pointers
- Exercises
- 7 Storage Classes