Books & Videos

Table of Contents

  1. The Environment

    1. Chapter 1 Set Yourself Up for Easy Compilation

      1. Use a Package Manager
      2. Compiling C with Windows
      3. Which Way to the Library?
      4. Using Makefiles
      5. Using Libraries from Source
      6. Using Libraries from Source (Even if Your Sysadmin Doesn’t Want You To)
      7. Compiling C Programs via Here Document
    2. Chapter 2 Debug, Test, Document

      1. Using a Debugger
      2. Using Valgrind to Check for Errors
      3. Unit Testing
      4. Interweaving Documentation
      5. Error Checking
    3. Chapter 3 Packaging Your Project

      1. The Shell
      2. Makefiles vs. Shell Scripts
      3. Packaging Your Code with Autotools
    4. Chapter 4 Version Control

      1. Changes via diff
      2. Git’s Objects
      3. Trees and Their Branches
      4. Remote Repositories
    5. Chapter 5 Playing Nice with Others

      1. The Process
      2. Python Host
  2. The Language

    1. Chapter 6 Your Pal the Pointer

      1. Automatic, Static, and Manual Memory
      2. Persistent State Variables
      3. Pointers Without malloc
    2. Chapter 7 C Syntax You Can Ignore

      1. Don’t Bother Explicitly Returning from main
      2. Let Declarations Flow
      3. Cast Less
      4. Enums and Strings
      5. Labels, gotos, switches, and breaks
      6. Deprecate Float
      7. Comparing Unsigned Integers
    3. Chapter 8 Obstacles and Opportunity

      1. Cultivate Robust and Flourishing Macros
      2. Linkage with static and extern
      3. The const Keyword
    4. Chapter 9 Text

      1. Making String Handling Less Painful with asprintf
      2. A Pæan to strtok
      3. Unicode
    5. Chapter 10 Better Structures

      1. Compound Literals
      2. Variadic Macros
      3. Safely Terminated Lists
      4. Foreach
      5. Vectorize a Function
      6. Designated Initializers
      7. Initialize Arrays and Structs with Zeros
      8. Typedefs Save the Day
      9. Return Multiple Items from a Function
      10. Flexible Function Inputs
      11. The Void Pointer and the Structures It Points To
    6. Chapter 11 Object-Oriented Programming in C

      1. What You Don’t Get (and Why You Won’t Miss It)
      2. Extending Structures and Dictionaries
      3. Functions in Your Structs
      4. Count References
    7. Chapter 12 Libraries

      1. GLib
      2. POSIX
      3. The GNU Scientific Library
      4. SQLite
      5. libxml and cURL
  1. Epilogue

  2. Glossary

  3. Bibliography

  4. Colophon