Advanced C is a repository focused on sharing small explanatory examples of advanced topics in the C programming language. It is divided into small cases, which come with sample code that can be tested in any IDE or online compiler for learning purposes, as well as an explanatory diagram in excalidraw, which illustrates the interaction of the code with the basic concept of the problem exposed, such as memory usage and other topics. Along with this, there is also an explanation of why the cases occur and how to deal with them.
It is a great opportunity to delve deeper into some niche points of the language, in order to enrich the code and the understanding of standard topics, which can be used in any development environment, for any stack used, such as memory management and architecture. The main purpose is to share specific knowledge acquired over years of study and professional experience with the language, helping those who seek to learn more to have access to content that is palatable to all audiences!
- "Sharing knowledge is a noble attitude that enriches both the person sharing it and the person receiving it, as knowledge multiplies when it is shared."
/advanced-c
├── /cases
│ ├── /array_decay
│ │ ├──/ excalidraw
│ │ │ ├── README.md
│ │ │ └── array_decay.c
│ │ └── README.md
│ └── /other_cases...
├── /images
├── .gitattributes
├── .gitignore
├── LICENSE
└── README.md
This repository is structured around the 'cases' folder, where all the advanced topics are located. Each of them has different types of applications, which can be separated into subfolders or included within the code, in the .c file, depending on the degree of complexity. All cases have a readme with a diagram made in Excalidraw, in addition to a folder with the .svg image, vectorized and the file to be opened in the software, so that it can be viewed and edited by anyone.
The project does not have a make file because it was created with the intention of each case being a microcode that can be copied and applied in any version of IDE or compiler, with some exceptions, which have specific notes, even in online tools, in order to make the debugging of the cases assertive and open to any level of learning.
Category | Technologies and Tools |
---|---|
Programming Languages | |
Build System | |
Version Control | |
Documentation | |
Support Tools | |
Operating System | |
IDE |
Title | Author / Year |
---|---|
Charles Cabergs - Advanced C (Playlist on YouTube) |
Charles Cabergs, 2023 |
The C Programming Language | Brian W. Kernighan, Dennis M. Ritchie, 1978 |
Compilers: Principles, Techniques, and Tools | Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Monica S. Lam, 1985 |
Grokking Algorithms | Aditya Bhargava, 2015 |
Domain-Driven Design: Tackling Complexity in the Heart of Software | Eric Evans, 2004 |
Understanding and Using C Pointers: Core Techniques for Memory Management | Richard M. Reese, 2013 |