A collection of various C projects, experiments, and learning resources organized into a single repository.
This repository is organized into several categories:
projects/: More complete applications and tools.c-squares: A graphical square-based project.text-editor: Multiple text editor implementations.typing_proyect: A typing speed test application.chess_timer,emotion_logger,calculator, and more.
graphics/: Graphical experiments and inspirations.- Projects using Raylib, SDL2, and custom implementations (metaballs, starship).
- Includes various inspirations like
wang-tiles.
learning/: Exercises and code snippets for learning C concepts.- Topics: Bitwise operations, loops, memory overflow, and CS50 exercises.
libs/: Single-header libraries and shared utilities.base.h,easy-args,mate.h, andnob.h.
utils/: Small utility programs and data structure implementations.scratch/: Temporary tests, experiments, and random code snippets.
To compile and run these programs, you will need a C compiler:
gccclangmsvc
To execute a program, navigate to its directory and compile it with your preferred compiler. For example:
gcc -o my_program main.c
./my_programNote: Some projects in projects/ or graphics/ might include a Makefile or use nob.h for building.
Read the code before executing. While these programs are intended to be harmless experiments, you should always exercise caution when running code from the internet on your machine.
This collection makes use of or is inspired by several excellent libraries and projects:
- Build Systems: nob.h
- CLI Arguments: easy-args
- Graphics: Raylib, SDL2
- Utilities: stb libraries
- External Tools: Cjit, C Scripting