Practical C: A comprehensive guide to the C programming language by Rafal Jackiewicz
English | June 27, 2023 | ISBN: N/A | ASIN: B0C9PBVBCM | 899 pages | EPUB | 1.59 Mb
English | June 27, 2023 | ISBN: N/A | ASIN: B0C9PBVBCM | 899 pages | EPUB | 1.59 Mb
This book is a comprehensive guide on the C programming language, offering a blend of foundational knowledge and practical applications. Starting with a brief about the author, the book delves into the history, importance, and workings of the C compiler, differentiating between source files and header files. It guides readers through a comprehensive understanding of static and dynamic libraries and their interaction with CMake.
The second chapter dives deep into C's basic syntax, data types, operators, control structures, and key elements such as `size_t`, `typedef`, `sizeof`, and the `volatile` keyword. This section also provides a detailed explanation of error handling, structures, enumerations, functions, arrays, strings, and pointers.
The third chapter stands out due to its focus on practical C programming, including bit manipulation, list, set, and map data structures, socket programming, file processing, and concurrency. It covers graphic programming with OpenGL, audio files, parallel computing with OpenCL and CUDA, and the comparison between them. It explores data integrity, privacy with asymmetric encryption, and securing sensitive data. This section also features interfacing C with assembly language, Java, Python, shell commands, and specifics about memory location access.
The fourth chapter emphasizes safety-critical code development, presenting the Power of 10 rules. The fifth chapter elucidates code optimization techniques, debugging, testing with GDB, and the Check framework for unit testing, highlighting common pitfalls.
Finally, the book culminates with a chapter providing practical projects and exercises for self-assessment, including solutions and explanations. This book serves as an extensive resource for both beginners and advanced learners aiming to master C programming.