Effective C: An Introduction to Professional C Programming
Product ID : 44090655
Galleon Product ID
No Starch Press
Get it between 2020-12-17 to 2020-12-24.
Additional 3 days for provincial shipping.
*Price and Stocks may change without prior notice
3 Day Return Policy
All products are genuine and original
Cash On Delivery/Cash Upon Pickup Available
A detailed introduction to the C programming language for experienced programmers.
The world runs on code written in the C programming language, yet most schools begin the curriculum with Python or Java.
Effective C bridges this gap and brings C into the modern era--covering the modern C17 Standard as well as potential C2x features. With the aid of this instant classic, you'll soon be writing professional, portable, and secure C programs to power robust systems and solve real-world problems.
Robert C. Seacord introduces C and the C Standard Library while addressing best practices, common errors, and open debates in the C community. Developed together with other C Standards committee experts,
Effective C will teach you how to debug, test, and analyze C programs. You'll benefit from Seacord's concise explanations of C language constructs and behaviors, and from his 40 years of coding experience.
• How to identify and handle undefined behavior in a C program
• The range and representations of integers and floating-point values
• How dynamic memory allocation works and how to use nonstandard functions
• How to use character encodings and types
• How to perform I/O with terminals and filesystems using C Standard streams and POSIX file descriptors
• How to understand the C compiler's translation phases and the role of the preprocessor
• How to test, debug, and analyze C programs
Effective C will teach you how to write professional, secure, and portable C code that will stand the test of time and help strengthen the foundation of the computing world.
Effective C will teach you C programming for the modern era...
This book's emphasis on the security aspects of C programming is unmatched. My personal recommendation is that, after reading it, you use all of the available tools it presents to avoid undefined behavior in the C programs you write.
—Pascal Cuoq, Chief Scientist, TrustInSoft
About the Author
Robert C. Seacord is a Technical Director at NCC Group where he develops and delivers secure coding training in C, C++, and other languages. Seacord is an expert on the C Standards committee. His six previous books include
The CERT C Coding Standard and
Secure Coding in C and C++.
Excerpt. © Reprinted by permission. All rights reserved.
C was developed as a system programming language in the 1970s, and even after all this time, it remains incredibly popular. System languages are designed for performance and ease of access to the underlying hardware while providing high-level programming features. While other languages may offer newer language features, their compilers and libraries are typically written in C. Carl Sagan once said, “If you wish to make an apple pie from scratch, you must first invent the universe.”
The inventors of C did not invent the universe; they designed C to work with a variety of computing hardware and architectures that, in turn, were constrained by physics and mathematics. C is layered directly on top of computing hardware, making it more sensitive to evolving hardware features, such as vectorized instructions, than higher-level languages that typically rely on C for their efficiency.
According to the TIOBE index, C has been either the most popular programming language or second most popular since 2001.1 C is TIOBE’s programming language of the year for 2019. The popularity of the C programming language can most likely be attributed to several tenets of the language referred to as the
spirit of C:
• Trust the programmer. Generally speaking, the C language assumes you know what you’re doing and lets you. This isn’t always a good thing (for example, if you don’t know what you’re doing).
• Don’t prevent the programmer from doing what needs to be done. Because C is a system programming language, it has to be able to handle a variety of low-level tasks.
• Keep the language small and simple. The language is design