A comprehensive guide with practical instructions for learning data structures, low-level programming, high-performance computing, networking and IoT to help you understand the latest standards in C programming such as C11 and C18 Key Features Tackle various challenges in C programming by making the most of its latest features Understand the workings of arrays, strings, functions, pointers, advanced data structures, and algorithms Become well-versed with process synchronization during multitasking and server-client process communication Book Description Used in everything from microcontrollers to operating systems, C is a popular programming language among developers because of its flexibility and versatility. This book helps you get hands-on with various tasks, covering the fundamental as well as complex C programming concepts that are essential for making real-life applications. You’ll start with recipes for arrays, strings, user-defined functions, and pre-processing directives. Once you’re familiar with the basic features, you’ll gradually move on to learning pointers, file handling, concurrency, networking, and inter-process communication (IPC). The book then illustrates how to carry out searching and arrange data using different sorting techniques, before demonstrating the implementation of data structures such as stacks and queues. Later, you’ll learn interesting programming features such as using graphics for drawing and animation, and the application of general-purpose utilities. Finally, the book will take you through advanced concepts such as low-level programming, embedded software, IoT, and security in coding, as well as techniques for improving code performance. By the end of this book, you'll have a clear understanding of C programming, and have the skills you need to develop robust apps. What you will learn Discover how to use arrays, functions, and strings to make large applications Perform preprocessing and conditional compilation for efficient programming Understand how to use pointers and memory optimally Use general-purpose utilities and improve code performance Implement multitasking using threads and process synchronization Use low-level programming and the inline assembly language Understand how to use graphics for animation Get to grips with applying security while developing C programs Who this book is for This intermediate-level book is for developers who want to become better C programmers by learning its modern features and programming practices. Familiarity with C programming is assumed to get the most out of this book.