Book Image

Extreme C

By : Kamran Amini
5 (1)
Book Image

Extreme C

5 (1)
By: Kamran Amini

Overview of this book

There’s a lot more to C than knowing the language syntax. The industry looks for developers with a rigorous, scientific understanding of the principles and practices. Extreme C will teach you to use C’s advanced low-level power to write effective, efficient systems. This intensive, practical guide will help you become an expert C programmer. Building on your existing C knowledge, you will master preprocessor directives, macros, conditional compilation, pointers, and much more. You will gain new insight into algorithm design, functions, and structures. You will discover how C helps you squeeze maximum performance out of critical, resource-constrained applications. C still plays a critical role in 21st-century programming, remaining the core language for precision engineering, aviations, space research, and more. This book shows how C works with Unix, how to implement OO principles in C, and fully covers multi-processing. In Extreme C, Amini encourages you to think, question, apply, and experiment for yourself. The book is essential for anybody who wants to take their C to the next level.
Table of Contents (23 chapters)


This chapter was about unit testing and debugging C programs. As a summary, in this chapter:

  • We talked about testing, and why it is important to us as software engineers and development teams.
  • We also discussed the different levels of testing like unit testing, integration testing, and system testing.
  • Functional and non-functional testing were also covered.
  • Regression testing was explained.
  • CMocka and Google Test, as two well-known testing libraries for C, were explored and some examples were given.
  • We talked about debugging and various types of bugs.
  • We discussed debuggers, memory profilers, thread debuggers, and performance debuggers which can help us to have a more successful investigation while working on a bug.

The next chapter is about the build systems available for C projects. We will discuss what a build system is and what features it can bring in, which will eventually help us to automate the process of building a huge...