These files are solutions to Kernighan and Ritchie's The C Programming
Language, 2nd Edition. The aim of this project is to help deepen one's
understanding of C, using only the concepts covered in content that comes before
each exercise. That means no "cheating" by using standard library features that
aren't covered in the book yet. According to comp.lang.c
, this is known
as Category-0 compliant. As a result, many of the solutions will probably not
be "the best", but suitable for the goal at hand: learning.
Motive
This project was started to bring out the value of the K&R. Just reading the text isn't enough; to best learn with the K&R, the exercises are valuable experience that keeps things interesting as one progresses through the book.
Constructive critique is welcome, but please keep in mind the scope and goals of this project. Some incomplete implementations are noted. Pull requests, patches, questions, and advice are welcome.
This project is the culmination of about ten years of revisiting the text when I got the opportunity. I hope its contents are as informative and instructive as the text itself.
Roadmap
- Improve exercises 8-4 through 8-8, once I learn how to verify memory sanity
- A possible
modern
branch, to demonstrate how to achieve the same results with 'normal' methods. Might split betweenc99
andc11
or more, if there is interest. - Curate a list of "next step" resources for new C learners to cut their teeth on, to keep C interesting and not just restricted to theory. Outside opinions greatly appreciated!
License
This project is licensed under the GNU General Public License version 3 and is copywritten by the individuals in the AUTHORS file. For more information, please read the LICENSE file that accompanies this project. To keep things simple, contributions should be licensed under the same license to ensure the project retains its enforcement of software freedoms. If the GPL 3 is unsatisfactory for you, please do not submit pull requests or patches.