awesome-c-preprocessorA list of awesome C preprocessor stuff
See also: "The Preprocessor Iceberg Meme".
hirrolot/metalang99 -- Full-blown preprocessor metaprogramming.boostorg/preprocessor -- Boost.org preprocessor module.boostorg/vmd -- Boost.org VMD module.rofl0r/order-pp -- order-pp preprocessor library (standalone part of chaos-pp).rofl0r/chaos-pp -- chaos preprocessor library. this is what boost preprocessor derived from.pfultz2/Cloak -- A mini-preprocessor library to demonstrate the recursive capabilities of the preprocessor.pfultz2/ZLang -- A plugin framework for namespace macros in C/C++.mcinglis/libpp -- Functional-programming macros for the C preprocessor.mcinglis/macrofun -- Standards-defying functional-programming macros for the C preprocessor.gustedt/p99 -- Macros and functions for C99.twhitehead/c99-meta -- Abusing the C99 preprocessor for meta-programming.metacall/core/source/preprocessor -- Preprocessor Library by Parra Studios.hirrolot/datatype99 -- Algebraic data types for C99.hirrolot/interface99 -- Zero-boilerplate interfaces for C99.orangeduck/Cello -- Higher level programming in C.CObjectSystem/COS -- C Object System: a framework that brings C to the level of other high level programming languages and beyond.small-c/obj.h -- A single-header supports OOP in pure C.shakna-israel/LetsDestroyC.md -- Let's Destroy C.yulon/clofn -- A closure function implementation for C.alexanderchuranov/Metaresc -- META data and RESource library for C language.Leushenko/C99-Lambda -- Purely evil preprocessor macros adding anonymous functions and closures to ISO C99.Leushenko/Pyrite -- BASIC-style "compiler" as C syntax library.emdash/goof -- A toy functional language created through the abuse of C.Qqwy/c_exceptional -- A simple Exception-handling library for C99.BlueFlo0d/CSP -- Compile-time LISP interpreter on C macro preprocessor.cospplredman/PPLISP -- A set of 45 macros that allow for lisp-like preprocessor meta programming.Ferdi265/preprocessor_brainfuck -- A brainfuck interpreter using only the C preprocessor.orangeduck/CPP_COMPLETE -- Brainfuck interpreter written in the C preprocessor.mkotha/bfi -- A brainfuck interpreter on the C preprocessor.notfoundry/bf.h -- Brainfuck interpreter written in the C preprocessor.notfoundry/ppasm -- x86_64 macro assembler entirely in C preprocessor.ptaffet/preprocessor-debug -- Observe how the C preprocessor expands your complicated macros.notfoundry/ppstep -- Interactive C/C++ preprocessor macro debugger.messer-cpp/messer -- REPL for C preprocessor of C++17.mcpp -- A portable C preprocessor.Cedro -- A C language extension that works as an (external) preprocessor.eudoxia0/cmacro -- Lisp macros for C.eudoxia0/magma -- A collection of useful macros based on cmacro.swansontec/map-macro -- A recursive C preprocessor macro which performs an operation on each element of a list.M4GNV5/CppFun -- Arithmetic in the C preprocessor by representing numbers as arrays of 8-bit elements.ramdeoshubham/macros -- A collection of commonly used C MACROS.cher-nov/Gena -- Generic pseudo-templated containers written in C89, inspired by C++ STL.agrif/Makefile -- A horrible, horrible, wonderful C Preprocessor hack library.notfoundry/wtf.c -- 4-bit ALU metaprogrammed in C11's _Generic.kcning/binom -- C macro that computes binominal coefficient at compile time.ldionne/cisp -- A C preprocessor library implementing object semantics.rofl0r/thread_wrapper -- A thread launcher wrapper macro based on Boost/Preprocessor.18sg/uSHET -- A Malloc-Free SHET Client Library for Microcontrollers (lib/cpp_magic.h).ScrimpyCat/CommonC -- Common utilities for C (CommonC/Template.h).Some worth-noting articles:
for Scopes369 followers · starred Jun 2021
3,790 followers · starred Oct 2024
802 followers · starred Feb 2021
207 followers · starred Oct 2025
awesome-c-preprocessorA list of awesome C preprocessor stuff
See also: "The Preprocessor Iceberg Meme".
hirrolot/metalang99 -- Full-blown preprocessor metaprogramming.boostorg/preprocessor -- Boost.org preprocessor module.boostorg/vmd -- Boost.org VMD module.rofl0r/order-pp -- order-pp preprocessor library (standalone part of chaos-pp).rofl0r/chaos-pp -- chaos preprocessor library. this is what boost preprocessor derived from.pfultz2/Cloak -- A mini-preprocessor library to demonstrate the recursive capabilities of the preprocessor.pfultz2/ZLang -- A plugin framework for namespace macros in C/C++.mcinglis/libpp -- Functional-programming macros for the C preprocessor.mcinglis/macrofun -- Standards-defying functional-programming macros for the C preprocessor.gustedt/p99 -- Macros and functions for C99.twhitehead/c99-meta -- Abusing the C99 preprocessor for meta-programming.metacall/core/source/preprocessor -- Preprocessor Library by Parra Studios.hirrolot/datatype99 -- Algebraic data types for C99.hirrolot/interface99 -- Zero-boilerplate interfaces for C99.orangeduck/Cello -- Higher level programming in C.CObjectSystem/COS -- C Object System: a framework that brings C to the level of other high level programming languages and beyond.small-c/obj.h -- A single-header supports OOP in pure C.shakna-israel/LetsDestroyC.md -- Let's Destroy C.yulon/clofn -- A closure function implementation for C.alexanderchuranov/Metaresc -- META data and RESource library for C language.Leushenko/C99-Lambda -- Purely evil preprocessor macros adding anonymous functions and closures to ISO C99.Leushenko/Pyrite -- BASIC-style "compiler" as C syntax library.emdash/goof -- A toy functional language created through the abuse of C.Qqwy/c_exceptional -- A simple Exception-handling library for C99.BlueFlo0d/CSP -- Compile-time LISP interpreter on C macro preprocessor.cospplredman/PPLISP -- A set of 45 macros that allow for lisp-like preprocessor meta programming.Ferdi265/preprocessor_brainfuck -- A brainfuck interpreter using only the C preprocessor.orangeduck/CPP_COMPLETE -- Brainfuck interpreter written in the C preprocessor.mkotha/bfi -- A brainfuck interpreter on the C preprocessor.notfoundry/bf.h -- Brainfuck interpreter written in the C preprocessor.notfoundry/ppasm -- x86_64 macro assembler entirely in C preprocessor.ptaffet/preprocessor-debug -- Observe how the C preprocessor expands your complicated macros.notfoundry/ppstep -- Interactive C/C++ preprocessor macro debugger.messer-cpp/messer -- REPL for C preprocessor of C++17.mcpp -- A portable C preprocessor.Cedro -- A C language extension that works as an (external) preprocessor.eudoxia0/cmacro -- Lisp macros for C.eudoxia0/magma -- A collection of useful macros based on cmacro.swansontec/map-macro -- A recursive C preprocessor macro which performs an operation on each element of a list.M4GNV5/CppFun -- Arithmetic in the C preprocessor by representing numbers as arrays of 8-bit elements.ramdeoshubham/macros -- A collection of commonly used C MACROS.cher-nov/Gena -- Generic pseudo-templated containers written in C89, inspired by C++ STL.agrif/Makefile -- A horrible, horrible, wonderful C Preprocessor hack library.notfoundry/wtf.c -- 4-bit ALU metaprogrammed in C11's _Generic.kcning/binom -- C macro that computes binominal coefficient at compile time.ldionne/cisp -- A C preprocessor library implementing object semantics.rofl0r/thread_wrapper -- A thread launcher wrapper macro based on Boost/Preprocessor.18sg/uSHET -- A Malloc-Free SHET Client Library for Microcontrollers (lib/cpp_magic.h).ScrimpyCat/CommonC -- Common utilities for C (CommonC/Template.h).Some worth-noting articles:
for Scopes369 followers · starred Jun 2021
3,790 followers · starred Oct 2024
802 followers · starred Feb 2021
207 followers · starred Oct 2025