Files
2022-10-06 19:23:53 -04:00

46 lines
2.2 KiB
Markdown

# Info
A collection of examples, exercises, and experiments while learning the C programming language
## Resources and tools used
* Book - **The C Programming Language 2nd Edition** *by Dennis Ritchie and Brian Kerningham*
* Compiler - GCC >= 8
* Linux OS
The source material used to learn C is from *The C Programming Language 2nd Edition by Dennis Ritchie
and Brian Kerningham*. The reason I chose this book is due to numerous programmers acknowledging this
as a well put together book explaining the language. The book is concise and achieves the objective
of exhibiting how the language can be used and inspires further advancement. Though C is a small
language this book serves as a good read to get acquainted. There aren't vast examples or tirades
delving into painstakingly detailed concepts. It's a good introductory book. Even more, I get to
learn C as C. Instead of falling into the trap when learning a new language without getting used to
it. I know C++ but C shouldn't be viewed as C++ without all of the extra stuff. After all, C++ was
originally meant to be a subset of C but never did.
### Compiling with GCC
Use the following command when compiling files to keep the symbols. Useful when using GDB
```BASH
gcc -g main.c
```
### Note
This repo is not expecting any more commits. Due to life obligations I've choosen to focus on
other matters. This doesn't mean I've stopped learning C. I'll take a more hands on approach by
working on open source software to further my understanding of the C programming language.
The reason for wanting to use C was to get a better understanding of how a program works without
the aid of abstractions. I've used C++, including various standards of it from C++ 98 to C++ 20.
As the years goes on and if my interest in C++ does not wane and if there are still applicable
use cases for it, I will continue to increase my C++ knowledge. With that being said, though I
am aware C++ is not C. I've learned quite a bit from C++ that made reading C much easier. With
C I hope to have a tool in my belt where I could use it to create libaries or interfaces for
higher-level languages, write software for embedded devices (I may used C++ instead), or use it
to contribute to open source C projects that I'm interested in.