C: A Software Engineering Approach
Başlık:
C: A Software Engineering Approach
ISBN:
9781468403831
Personal Author:
Edition:
2nd ed. 1991.
Yayın Bilgileri:
New York, NY : Springer New York : Imprint: Springer, 1991.
Fiziksel Tanımlama:
XXI, 622 p. online resource.
Series:
Springer Books on Professional Computing
Contents:
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 -- 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 -- 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 -- D.5 Storage Class and Initialization Differences -- D.6 Preprocessor Differences -- Appendix E: Reserved Names -- Appendix F: C Interpreter Listing -- Appendix G: ASCII Codes.
Abstract:
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 that the reader has some familiarity with computers. While not essential, knowledge of another programming language will certainly help in mastering C. Although the subject matter of this book is the C language, the emphasis is on software engineering-making programs readable, maintainable, portable, and efficient. One of our main goals is to impress upon readers that there is a huge difference between programs that merely work, and programs that are well engi neered, just as there is a huge difference between a log thrown over a river and a well-engineered bridge. The book is organized linearly so that each chapter builds on information provided in the previous chapters. Consequently, the book will be most effective if chapters are read sequentially. Readers with some experience in C, however, may find it more useful to consult the table of contents and index to find sections of particular interest.
Added Author:
Ek Kurum Yazarı:
Elektronik Erişim:
Full Text Available From Springer Nature Computer Science Archive Packages
Dil:
English