C for Programmers with an Introduction to C11

Book description

The professional programmer’s Deitel® guide to procedural programming in C through 130 working code examples

Written for programmers with a background in high-level language programming, this book applies the Deitel signature live-code approach to teaching the C language and the C Standard Library. The book presents the concepts in the context of fully tested programs, complete with syntax shading, code highlighting, code walkthroughs and program outputs. The book features approximately 5,000 lines of proven C code and hundreds of savvy tips that will help you build robust applications.

Start with an introduction to C, then rapidly move on to more advanced topics, including building custom data structures, the Standard Library, select features of the new C11 standard such as multithreading to help you write high-performance applications for today’s multicore systems, and secure C programming sections that show you how to write software that is more robust and less vulnerable. You’ll enjoy the Deitels’ classic treatment of procedural programming. When you’re finished, you’ll have everything you need to start building industrial-strength C applications.

Practical, example-rich coverage of:

  • C programming fundamentals

  • Compiling and debugging with GNU gcc and gdb, and Visual C++®

  • Key new C11 standard features: Type generic expressions, anonymous structures and unions, memory alignment, enhanced Unicode® support, _Static_assert, quick_exit and at_quick_exit, _Noreturn function specifier, C11 headers

  • C11 multithreading for enhanced performance on today’s multicore systems

  • Secure C Programming sections

  • Data structures, searching and sorting

  • Order of evaluation issues, preprocessor

  • Designated initializers, compound literals, bool type, complex numbers, variable-length arrays, restricted pointers, type generic math, inline functions, and more.

Visit www.deitel.com

Table of contents

  1. About This eBook
  2. Title Page
  3. Copyright Page
  4. Deitel® Series Page
    1. Deitel® Developer Series
    2. LiveLessons Video Learning Products
    3. Simply Series
    4. CourseSmart Web Books
    5. How To Program Series
  5. Dedication Page
  6. Contents
  7. Preface
    1. Features
    2. A Note About Secure C Programming
    3. Teaching Approach
    4. Software Used in C for Programmers with an Introduction to C11
    5. C Fundamentals: Parts I and II LiveLessons Video Training Product
    6. Acknowledgments
    7. About the Authors
    8. Corporate Training from Deitel & Associates, Inc.
  8. 1. Introduction
    1. 1.1. Introduction
    2. 1.2. The C Programming Language
    3. 1.3. C Standard Library
    4. 1.4. C++ and Other C-Based Languages
    5. 1.5. Typical C Program Development Environment
    6. 1.6. Test-Driving a C Application in Windows, Linux and Mac OS X
    7. 1.7. Operating Systems
  9. 2. Introduction to C Programming
    1. 2.1. Introduction
    2. 2.2. A Simple C Program: Printing a Line of Text
    3. 2.3. Another Simple C Program: Adding Two Integers
    4. 2.4. Arithmetic in C
    5. 2.5. Decision Making: Equality and Relational Operators
    6. 2.6. Secure C Programming
  10. 3. Control Statements: Part I
    1. 3.1. Introduction
    2. 3.2. Control Structures
    3. 3.3. The if Selection Statement
    4. 3.4. The if...else Selection Statement
    5. 3.5. The while Repetition Statement
    6. 3.6. Class Average with Counter-Controlled Repetition
    7. 3.7. Class Average with Sentinel-Controlled Repetition
    8. 3.8. Nested Control Statements
    9. 3.9. Assignment Operators
    10. 3.10. Increment and Decrement Operators
    11. 3.11. Secure C Programming
  11. 4. Control Statements: Part II
    1. 4.1. Introduction
    2. 4.2. Repetition Essentials
    3. 4.3. Counter-Controlled Repetition
    4. 4.4. for Repetition Statement
    5. 4.5. for Statement: Notes and Observations
    6. 4.6. Examples Using the for Statement
    7. 4.7. switch Multiple-Selection Statement
    8. 4.8. do...while Repetition Statement
    9. 4.9. break and continue Statements
    10. 4.10. Logical Operators
    11. 4.11. Confusing Equality (==) and Assignment (=) Operators
    12. 4.12. Secure C Programming
  12. 5. Functions
    1. 5.1. Introduction
    2. 5.2. Program Modules in C
    3. 5.3. Math Library Functions
    4. 5.4. Functions
    5. 5.5. Function Definitions
    6. 5.6. Function Prototypes: A Deeper Look
    7. 5.7. Function Call Stack and Stack Frames
    8. 5.8. Headers
    9. 5.9. Passing Arguments By Value and By Reference
    10. 5.10. Random Number Generation
    11. 5.11. Example: A Game of Chance
    12. 5.12. Storage Classes
    13. 5.13. Scope Rules
    14. 5.14. Recursion
    15. 5.15. Example Using Recursion: Fibonacci Series
    16. 5.16. Recursion vs. Iteration
    17. 5.17. Secure C Programming
  13. 6. Arrays
    1. 6.1. Introduction
    2. 6.2. Arrays
    3. 6.3. Defining Arrays
    4. 6.4. Array Examples
    5. 6.5. Passing Arrays to Functions
    6. 6.6. Sorting Arrays
    7. 6.7. Case Study: Computing Mean, Median and Mode Using Arrays
    8. 6.8. Searching Arrays
    9. 6.9. Multidimensional Arrays
    10. 6.10. Variable-Length Arrays
    11. 6.11. Secure C Programming
  14. 7. Pointers
    1. 7.1. Introduction
    2. 7.2. Pointer Variable Definitions and Initialization
    3. 7.3. Pointer Operators
    4. 7.4. Passing Arguments to Functions by Reference
    5. 7.5. Using the const Qualifier with Pointers
    6. 7.6. Bubble Sort Using Pass-by-Reference
    7. 7.7. sizeof Operator
    8. 7.8. Pointer Expressions and Pointer Arithmetic
    9. 7.9. Relationship between Pointers and Arrays
    10. 7.10. Arrays of Pointers
    11. 7.11. Case Study: Card Shuffling and Dealing Simulation
    12. 7.12. Pointers to Functions
    13. 7.13. Secure C Programming
  15. 8. Characters and Strings
    1. 8.1. Introduction
    2. 8.2. Fundamentals of Strings and Characters
    3. 8.3. Character-Handling Library
    4. 8.4. String-Conversion Functions
    5. 8.5. Standard Input/Output Library Functions
    6. 8.6. String-Manipulation Functions of the String-Handling Library
    7. 8.7. Comparison Functions of the String-Handling Library
    8. 8.8. Search Functions of the String-Handling Library
    9. 8.9. Memory Functions of the String-Handling Library
    10. 8.10. Other Functions of the String-Handling Library
    11. 8.11. Secure C Programming
  16. 9. Formatted Input/Output
    1. 9.1. Introduction
    2. 9.2. Streams
    3. 9.3. Formatting Output with printf
    4. 9.4. Printing Integers
    5. 9.5. Printing Floating-Point Numbers
    6. 9.6. Printing Strings and Characters
    7. 9.7. Other Conversion Specifiers
    8. 9.8. Printing with Field Widths and Precision
    9. 9.9. Using Flags in the printf Format Control String
    10. 9.10. Printing Literals and Escape Sequences
    11. 9.11. Reading Formatted Input with scanf
    12. 9.12. Secure C Programming
  17. 10. Structures, Unions, Bit Manipulation and Enumerations
    1. 10.1. Introduction
    2. 10.2. Structure Definitions
    3. 10.3. Initializing Structures
    4. 10.4. Accessing Structure Members
    5. 10.5. Using Structures with Functions
    6. 10.6. typedef
    7. 10.7. Example: High-Performance Card Shuffling and Dealing Simulation
    8. 10.8. unions
    9. 10.9. Bitwise Operators
    10. 10.10. Bit Fields
    11. 10.11. Enumeration Constants
    12. 10.12. Secure C Programming
  18. 11. File Processing
    1. 11.1. Introduction
    2. 11.2. Files and Streams
    3. 11.3. Creating a Sequential-Access File
    4. 11.4. Reading Data from a Sequential-Access File
    5. 11.5. Random-Access Files
    6. 11.6. Creating a Random-Access File
    7. 11.7. Writing Data Randomly to a Random-Access File
    8. 11.8. Reading Data from a Random-Access File
    9. 11.9. Case Study: Transaction-Processing Program
    10. 11.10. Secure C Programming
  19. 12. Data Structures
    1. 12.1. Introduction
    2. 12.2. Self-Referential Structures
    3. 12.3. Dynamic Memory Allocation
    4. 12.4. Linked Lists
    5. 12.5. Stacks
    6. 12.6. Queues
    7. 12.7. Trees
    8. 12.8. Secure C Programming
  20. 13. Preprocessor
    1. 13.1. Introduction
    2. 13.2. #include Preprocessor Directive
    3. 13.3. #define Preprocessor Directive: Symbolic Constants
    4. 13.4. #define Preprocessor Directive: Macros
    5. 13.5. Conditional Compilation
    6. 13.6. #error and #pragma Preprocessor Directives
    7. 13.7. # and ## Operators
    8. 13.8. Line Numbers
    9. 13.9. Predefined Symbolic Constants
    10. 13.10. Assertions
    11. 13.11. Secure C Programming
  21. 14. Other Topics
    1. 14.1. Introduction
    2. 14.2. Redirecting I/O
    3. 14.3. Variable-Length Argument Lists
    4. 14.4. Using Command-Line Arguments
    5. 14.5. Notes on Compiling Multiple-Source-File Programs
    6. 14.6. Program Termination with exit and atexit
    7. 14.7. Suffixes for Integer and Floating-Point Literals
    8. 14.8. Signal Handling
    9. 14.9. Dynamic Memory Allocation: Functions calloc and realloc
    10. 14.10. Unconditional Branching with goto
  22. A. Operator Precedence Chart
  23. B. ASCII Character Set
  24. C. Number Systems
    1. C.1. Introduction
    2. C.2. Abbreviating Binary Numbers as Octal and Hexadecimal Numbers
    3. C.3. Converting Octal and Hexadecimal Numbers to Binary Numbers
    4. C.4. Converting from Binary, Octal or Hexadecimal to Decimal
    5. C.5. Converting from Decimal to Binary, Octal or Hexadecimal
    6. C.6. Negative Binary Numbers: Two’s Complement Notation
  25. D. Sorting: A Deeper Look
    1. D.1. Introduction
    2. D.2. Big O Notation
    3. D.3. Selection Sort
    4. D.4. Insertion Sort
    5. D.5. Merge Sort
  26. E. Additional Features of the C Standard
    1. E.1. Introduction
    2. E.2. Support for C99
    3. E.3. C99 Headers
    4. E.4. Mixing Declarations and Executable Code
    5. E.5. Declaring a Variable in a for Statement Header
    6. E.6. Designated Initializers and Compound Literals
    7. E.7. Type bool
    8. E.8. Implicit int in Function Declarations
    9. E.9. Complex Numbers
    10. E.10. Variable-Length Arrays
    11. E.11. Additions to the Preprocessor
    12. E.12. Other C99 Features
    13. E.13. New Features in the C11 Standard
    14. E.14. Web Resources
  27. F. Using the Visual Studio Debugger
    1. F.1. Introduction
    2. F.2. Breakpoints and the Continue Command
    3. F.3. Locals and Watch Windows
    4. F.4. Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands
    5. F.5. Autos Window
  28. G. Using the GNU Debugger
    1. G.1. Introduction
    2. G.2. Breakpoints and the run, stop, continue and print Commands
    3. G.3. print and set Commands
    4. G.4. Controlling Execution Using the step, finish and next Commands
    5. G.5. watch Command
  29. Index

Product information

  • Title: C for Programmers with an Introduction to C11
  • Author(s): Paul J. Deitel, Harvey Deitel
  • Release date: April 2013
  • Publisher(s): Pearson
  • ISBN: 9780133462081