

Buy anything from 5,000+ international stores. One checkout price. No surprise fees. Join 2M+ shoppers on Desertcart.
Desertcart purchases this item on your behalf and handles shipping, customs, and support to Australia.
C is a good language to learn. It was designed to do a very different job from most modern languages and the key to understanding it is not to just understand the code, but how this relates to the hardware. Fundamental C takes an approach that is close to the hardware, introducing addresses, pointers, and how things are represented using binary. An important idea is that everything is a bit pattern and what it means can change. As a C developer you need to think about the way data is represented, and Harry Fairhead encourages this. He emphasizes the idea of modifying how a bit pattern is treated using type punning and unions. This power brings with it the scourge of the C world โ undefined behavior - which is ignored in many books on C. Here, not only is it acknowledged, it is explained together with ways to avoid it. A particular feature of the book is the way C code is illustrated by the assembly language it generates. This helps you understand why C is the way it is. For beginners, the book covers installing an IDE and GCC before writing a Hello World program and then presents the fundamental building blocks of any program - variables, assignment and expressions, flow of control using conditionals and loops. Once the essentials are in place, data types are explored before looking at arithmetic and representation. Harry then goes deeper into evaluating expressions before looking at functions and their scope and lifetime. Arrays, strings, pointers and structs are covered in separate chapters, as is bit manipulation, a topic that is key to using C, and the idea of a file as the universal approach to I/O. Finally, he looks at the four stages of compilation of a C program, the use of static and dynamic libraries and make. This is C as it was always intended to be written - close to the metal. Harry Fairhead has a hardware background and, having worked with microprocessors and electronics in general, for many years, he is an enthusiastic proponent of the IoT. His recent titles include Raspberry Pi IoT in C and Micro:bit IoT in C. His next, Applying C For The IoT With Linux at intermediate/advanced level is intended as a companion to this book for those working in a Linux/POSIX environment, in particular the Raspberry Pi. Review: Good book. - The basic things are explained briefly and clearly. Olavi Review: Perfectly written if your brain need to understand why to learn how - Genuinely surprised at how easy this book deals with concepts for those who are not already intimately involved with programming on a day to day basis. I am learning to code in C for use in 32bit microcontrollers and so they why something works is just as important as the how to do something, especially when it comes to troubleshooting. This is probably the 4th or 5th book I have worked through and until now the basic concepts (no pun intended) just havenโt stuck. The โoh thatโs why itโs like thatโ is so helpful to my way of thinking and by the end of a chapter I have many fewer questions than I started with, whereas other texts have just increased the question burden. Methods have their pros and cons discussed including aspects of the language that isnโt particularly useful but understanding that is also important. So pleased this is on kindle unlimited or I might not have bumped into it. Massive credit to the author.
| Best Sellers Rank | 362,238 in Books ( See Top 100 in Books ) 1,902 in Computing & Internet Programming |
| Customer Reviews | 4.5 out of 5 stars 26 Reviews |
O**R
Good book.
The basic things are explained briefly and clearly. Olavi
J**S
Perfectly written if your brain need to understand why to learn how
Genuinely surprised at how easy this book deals with concepts for those who are not already intimately involved with programming on a day to day basis. I am learning to code in C for use in 32bit microcontrollers and so they why something works is just as important as the how to do something, especially when it comes to troubleshooting. This is probably the 4th or 5th book I have worked through and until now the basic concepts (no pun intended) just havenโt stuck. The โoh thatโs why itโs like thatโ is so helpful to my way of thinking and by the end of a chapter I have many fewer questions than I started with, whereas other texts have just increased the question burden. Methods have their pros and cons discussed including aspects of the language that isnโt particularly useful but understanding that is also important. So pleased this is on kindle unlimited or I might not have bumped into it. Massive credit to the author.
B**0
One of the best books on 'C'
I am an experienced programmer and this book is one of the best I have ever read on the subject of 'C' and what makes it so different. I really never understood what was so special about 'C' until I started to read this book. Buy it you will not be disapointed if you are a beginner or an 'old' hand, great value.
C**S
Great review and clear explanation of concepts in some new ways
I'm almost through with this book and it's cleared up a lot of things about C that I never really got before, and inspired me to write some code to test them out. I'm especially happy with the author's emphasis on how C variables and data constructs relate to how data is stored and manipulated on the hardware level- it's explained to me why some things are the way they are in C. Other books seem to just present how to write this or that routine but don't really get into why it's done or how it makes it more efficient once it's translated into CPU instructions, for instance. One thing I was a little shaky about was the declaration of pointers - I need to go back and reread it and it will probably make sense, but at first I was confused at why the author would write something like "int *p;" to mean "declare p as a pointer of type int", but also write it as "int* p" to mean the same thing. I'm sure if I reread the "Is int* a Type" section it will make sense, but I was a little perplexed at first. Anyway I'm particularly liking the bitwise operator section because I'm planning to do some experimentation with Linux on some low-level hardware like an IoT device or color framebuffer.
M**N
Nice textbook
Had to read this book for school. The author is comprehensible and incredibly lucid. It was a nice review of what I knew and intro to what I did not know.
F**D
A good C book leaning towards microcontrollers
4 instead of 5 stars only because there are better books out there with more detail for learning traditional C. I got a copy because he does a good job covering some of the lower level type capabilities of C for things like Micro-controllers (that's why I bought it). It'll teach the fundamentals of C but if you are a beginner with zero C experience you might benefit from a thicker book that covers more examples and the topics a bit deeper. Overall no regrets on the purchase. I haven't programmed in C in 20 years but I work in I.T. and I can follow code for the most part. This was good for me since I needed to just be able to look up how C handles certain things and the syntax, it has also helped with my real reason which was programming (in C) for my Raspberry Pico for all sorts of IoT projects. I have all of the authors C books for Raspberry as well. Between them all I can extract almost anything I need and if there's a gap I use this invention called the internet!!! :)
B**B
Hits the most important points.
Excellent summary to get caught back up with what I knew about the C programming language.
Trustpilot
2 weeks ago
2 days ago