Overview
- Discusses the trade-offs involved in feature implementations often hidden when programming with higher-level languages
- Includes many notes containing commentary, explanations for why something is the way it is, and historical context
- Covers the full C23 standard including threads, atomics, and topics not often covered elsewhere
Access this book
Tax calculation will be finalised at checkout
Other ways to access
About this book
Don’t count C out. The classic programming language remains the backbone of many modern software systems including operating systems, relational databases, libraries, embedded systems, and even the core components of other programming languages.
This book teaches C23 while also building a foundation that strengthens your programming skills regardless of what language you normally program in. Starting with a tour of C, it highlights C’s core concepts using example programs to give you the flavor of C. Next, it covers the entire C23 language including topics not often covered elsewhere such as undefined behavior, assertions, atomic variables, lock-free programming, debugging, advanced use of the preprocessor using _Generic, and more. Finally, it gives extended examples of how features common in modern programming languages might be implemented—including lists, maps, dynamic dispatch, and exceptions.
This book includes many in-line notes containing commentary, explanations for why something is the way it is, historical context, best practices, and details often glossed over in modern languages. Additionally, it gives examples that evolve with the introduction of new language features.
What You Will Learn:
- Write programs in C using the new features introduced in C23.
- Explore advanced or obscure parts of C not explained well elsewhere, if at all.
- See how strings, lists, maps, dynamic dispatch, and exceptions might be implemented from scratch to understand what’s really going on in whatever language you program in.
Who This Book is for:
Professional programmers, computer science instructors, students or experienced hobbyists who understand programming language concepts (variables, statements, loops, functions, arrays, classes, objects, etc.) and have basic familiarity with algorithm characterization given in “big O” notation.
Similar content being viewed by others
Table of contents (27 chapters)
-
Selected Topics
Authors and Affiliations
About the author
Paul J. Lucas started programming on Commodore PETs at his high school. Courtesy of his parents, the first computer he owned was an Apple ][plus that he programmed in BASIC, Pascal, Fortran, and 6502 Assembly. At some point, he upgraded to a Macintosh. During his undergraduate studies, he taught himself C. He’s been programming in C (on and off) ever since. He’s also programmed in Bash, Go, Java, Perl, and Python. Of all those, C and C++ are still his favorites.
He started his career at AT&T Bell Labs in telephony, log file visualization, testing cfront (the original C++ compiler), and wrote The C++ Programmer’s Handbook. He’s also worked at NASA Ames Research Center, various start-ups, and lastly at Splunk. He holds patents on data visualization class libraries, visual log file analysis, programming language type systems, skewing of scheduled search queries, and cache-aware searching. He developed open-source projects including CHSM, a finite state automata compiler and run-time system, used by both telecommunications companies and CERN for managing complex reactive systems; and maintains cdecl, the C and C++ gibberish-to-English translator.
Accessibility Information
PDF accessibility summary
This PDF has been created in accordance with the PDF/UA-1 standard to enhance accessibility, including screen reader support, described non-text content (images, graphs), bookmarks for easy navigation, keyboard-friendly links and forms and searchable, selectable text. We recognize the importance of accessibility, and we welcome queries about accessibility for any of our products. If you have a question or an access need, please get in touch with us at [email protected]. Please note that a more accessible version of this eBook is available as ePub.
EPUB accessibility summary
This ebook is designed with accessibility in mind, aiming to meet the ePub Accessibility 1.0 AA and WCAG 2.2 Level AA standards. It features a navigable table of contents, structured headings, and alternative text for images, ensuring smooth, intuitive navigation and comprehension. The text is reflowable and resizable, with sufficient contrast. We recognize the importance of accessibility, and we welcome queries about accessibility for any of our products. If you have a question or an access need, please get in touch with us at [email protected].
Bibliographic Information
Book Title: Why Learn C
Book Subtitle: Go Behind the Curtain of Modern Systems with C23
Authors: Paul J. Lucas
DOI: https://doi.org/10.1007/979-8-8688-1597-3
Publisher: Apress Berkeley, CA
eBook Packages: Professional and Applied Computing, Apress Access Books, Professional and Applied Computing (R0)
Copyright Information: Paul J. Lucas 2025
Softcover ISBN: 979-8-8688-1596-6Published: 08 October 2025
eBook ISBN: 979-8-8688-1597-3Published: 07 October 2025
Edition Number: 1
Number of Pages: XXV, 404
Number of Illustrations: 16 b/w illustrations
Topics: Professional Computing, Programming Techniques, Software Engineering/Programming and Operating Systems