Find a copy online
Links to this item
Find a copy in the library
Finding libraries that hold this item...
Details
Genre/Form: | Electronic books |
---|---|
Additional Physical Format: | Printed edition: Printed edition: |
Material Type: | Bibliographic data, Internet resource |
Document Type: | Internet Resource, Computer File |
All Authors / Contributors: |
Peter A Darnell; Philip E Margolis |
ISBN: | 9781461240204 1461240204 0387946756 9780387946757 |
OCLC Number: | 840279530 |
Language Note: | English. |
Description: | 1 online resource (XXVII, 497 pages) |
Contents: | 1: Introduction to Programming -- 1.1 High-Level Programming Languages -- 1.2 History of C -- 1.3 ANSI and ISO Standards -- 1.4 Nature of C -- 2: Introduction to Software Engineering -- 2.1 Introduction -- 2.2 Stages of Software Production -- 2.3 Product Specification -- 2.4 Architectural Design -- 2.5 Project Planning -- 2.6 Detailed Design -- 2.7 Coding -- 2.8 Debugging -- 2.9 Testing -- 2.10 Maintenance -- 2.11 The Bridge Metaphor -- 3: C Essentials -- 3.1 Program Development -- 3.2 Functions -- 3.3 Variables and Constants -- 3.4 Names -- 3.5 Expressions -- 3.6 Formatting Source Files -- 3.7 The main() Function -- 3.8 The printf() Function -- 3.9 The scanf() Function -- 3.10 The Preprocessor -- 3.11 Exercises -- 4: Scalar Data Types -- 4.1 Declarations -- 4.2 Different Kinds of Integer Constants -- 4.3 Floating-Point Types -- 4.4 Scientific Notation -- 4.5 Initialization -- 4.6 Mixing Types -- 4.7 Explicit Conversions -- Casts -- 4.8 Enumeration Types -- 4.9 The void Data Type -- 4.10 Typedefs -- 4.11 Finding the Address of an Object -- 4.12 Introduction to Pointers -- 4.13 Exercises -- 5: Control Flow -- 5.1 Conditional Branching -- 5.2 The switch Statement -- 5.3 Looping -- 5.4 Nested Loops -- 5.5 A Simple Calculator Program -- 5.6 The break and continue Statements -- 5.7 The goto Statement -- 5.8 Infinite Loops -- 5.9 Exercises -- 6: Operators and Expressions -- 6.1 Precedence and Associativity -- 6.2 Unary Plus and Minus Operators -- 6.3 Binary Arithmetic Operators -- 6.4 Arithmetic Assignment Operators -- 6.5 Increment and Decrement Operators -- 6.6 Comma Operator -- 6.7 Relational Operators -- 6.8 Logical Operators -- 6.9 Bit-Manipulation Operators -- 6.10 Bitwise Assignment Operators -- 6.11 Cast Operator -- 6.12 sizeof Operator -- 6.13 Conditional Operator (?:) -- 6.14 Memory Operators -- 6.15 Exercises -- 7: Arrays and Pointers -- 7.1 Declaring an Array -- 7.2 How Arrays Are Stored in Memory -- 7.3 Initializing Arrays -- 7.4 Example: Encryption and Decryption -- 7.5 Pointer Arithmetic -- 7.6 Passing Pointers as Function Arguments -- 7.7 Accessing Array Elements Through Pointers -- 7.8 Passing Arrays as Function Arguments -- 7.9 Sorting Algorithms -- 7.10 Strings -- 7.11 Multidimensional Arrays -- 7.12 Arrays of Pointers -- 7.13 Pointers to Pointers -- 7.14 Exercises -- 8: Storage Classes -- 8.1 Fixed vs. Automatic Duration -- 8.2 Scope -- 8.3 Global Variables -- 8.4 The register Specifier -- 8.5 The const Storage-Class Modifier -- 8.6 The volatile Storage-Class Modifier -- 8.7 Summary of Storage Classes -- 8.8 Dynamic Memory Allocation -- 8.9 Exercises -- 9: Structures and Unions -- 9.1 Structures -- 9.2 Linked Lists -- 9.3 Unions -- 9.4 enum Declarations -- 9.5 Exercises -- 10: Functions -- 10.1 Passing Arguments -- 10.2 Declarations and Calls -- 10.3 Pointers to Functions -- 10.4 Recursion -- 10.5 The main() Function -- 10.6 Complex Declarations -- 10.7 Exercises -- 11: The C Preprocessor -- 11.1 Macro Substitution -- 11.2 Conditional Compilation -- 11.3 Include Facility -- 11.4 Line Control -- 11.5 Exercises -- 12: Input and Output -- 12.1 Streams -- 12.2 Buffering -- 12.3 The Header File -- 12.4 Opening and Closing a File -- 12.5 Reading and Writing Data -- 12.6 Selecting an I/O Method -- 12.7 Unbuffered I/O -- 12.8 Random Access -- 12.9 Exercises -- 13: Software Engineering -- A Case Study -- 13.1 Style Review -- 13.2 Product Specification -- 13.3 Architectural Design -- 13.4 Project Planning -- 13.5 Detailed Design -- 13.6 Software Tools for Software Production -- 13.7 Documentation -- 13.8 Exercises -- Appendices -- 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 -- B: Implementation Limits -- B.1 Translation Limits -- B.2 Numerical Limits -- C: Differences Between the ANSI and K & R Standards -- C.1 Source Translation Differences -- C.2 Data Type Differences -- C.3 Statement Differences -- C.4 Expression Differences -- C.5 Storage Class and Initialization Differences -- C.6 Preprocessor Differences -- D: Reserved Names -- E: ASCII Codes. |
Responsibility: | by Peter A. Darnell, Philip E. Margolis. |
Abstract:
This highly readable text is designed for beginning and intermediate C programmers. While focusing on the C programming language, the book empasizes stylistic issues and software engineering principles that can be applied to developing programs that are readable, maintainable, portable, and efficient. This book can be used as the primary textbook in a course on C or as a primary book by programmers intent on learning C. The software engineering techniques discussed throughout the text are illustrated in a C interpreter whose source listing is provided on a diskette with the book. There are highlighted "bug alerts" which offer tips on the common errors made by novice programmers. From reviews of the previous edition: "Rarely does an introductory book on a programming language balance the basic and the advanced so well."--Computer Reviews "Outstanding textbook for novice C users."--Computer Book Review "Excellent for a systematic person who wants a running start in C."--UnixWorld.
Reviews
User-contributed reviews
Add a review and share your thoughts with other readers.
Be the first.
Add a review and share your thoughts with other readers.
Be the first.


Tags
Add tags for "C A Software Engineering Approach".
Be the first.