C Specification (6 May 2005 Draft) | C17 Standard Draft
Frequently conjoined with C++.
Numerous languages seek to supplant or replace C as the ubiquitous system language. None so far have been successful.
Implementations:
- gcc
- clang from LLVM
- lcc (Source): A retargetable C compiler
- Emscripten
- TinyC: Website and Git repo | Single-page
- OpenWatcom
- Cheerp: C to WASM bytecode
- PicoC: Statically typed. Interprets a subset of C.
- Dev-C++ : Free IDE and compiler for the C and C++ languages. Delphi and C source code available.
- SmallC : Small C compiler written by J. E. Hendrix. C source code included.
- Djgpp : Free compiler for c, c++, forth, pascal and more including C sources.
- lcc : lcc is a retargetable compiler for ISO Standard C. It generates code for the ALPHA, SPARC, MIPS R3000, and Intel x86 and its successors.
- LCC-Win32 : a free compiler system for Windows by Jacob Navia.
- Pacific C for DOS : Freeware version for MSDOS of a professional C IDE/compiler shareware
- Dev86 / BCC : 8086 C/Assembler development tools (C compiler, assembler, linker). Open Source.
- Extended C Development Kit
- CuikC: The plan is a modern C11 compiler which can mostly work with Clang, GCC, and MSVC while also introducing some new ideas. Warning: unfinished
- C compiler written in untyped lambda calculus:
- Compile C to:
- x86 executable (a.out)
- Lambda calculus term (runs on the same interpreter as lambda-8cc)
- Binary lambda calculus program
- SKI combinator calculus term (runnable as a Lazy K program)
- ELVM assembly listing (example: rot13.s)
- Compile ELVM assembly to:
- x86/lambda calculus/BLC/SKI combinator calculus (all of the above)
- Fil-C: a fanatically compatible memory-safe implementation of C and C++. Lots of software compiles and runs with Fil-C with zero or minimal changes. All memory safety errors are caught as Fil-C panics. Fil-C achieves this using a combination of concurrent garbage collection and invisible capabilities (each pointer in memory has a corresponding capability, not visible to the C address space). Every fundamental C operation (as seen in LLVM IR) is checked against the capability. Fil-C has no unsafe escape hatch of any kind.
Cosmopolitan Libc: "makes C a build-once run-anywhere language, like Java, except it doesn't need an interpreter or virtual machine. Instead, it reconfigures stock GCC and Clang to output a POSIX-approved polyglot format that runs natively on Linux + Mac + Windows + FreeBSD + OpenBSD + NetBSD + BIOS with the best possible performance and the tiniest footprint imaginable."
Books
- 256-Color VGA Programming in C - David Brackeen
- A Tutorial on Pointers and Arrays in C - Ted Jensen (PDF)
- An Introduction to C & GUI Programming - Simon Long (PDF)
- Bare-metal programming for ARM - Daniels Umanovskis (PDF)
- Beej's Guide to C Programming - B. Hall (HTML, PDF)
- Beej's Guide to Network Programming - Using Internet Sockets - B. Hall
- Beej's Guide to the GNU Debugger (GDB) - B. Hall (HTML)
- Build Your Own Lisp - Daniel Holden
- C Elements of Style - Steve Oualline
- C for Python Programmers - Carl Burch
- C Internals - Rajeev Kumar (HTML)
- C Notes for Professionals - Compiled from StackOverflow Documentation (PDF)
- C Programming - Wikibooks
- C Programming Boot Camp - Paul Gribble
- C Programming Tutorial - Tutorialspoint (HTML)
- Coursebook - B. Venkatesh, L. Angrave, et al.
- Deep C
- Essential C - Nick Parlante (PDF)
- Everything you need to know about pointers in C - Peter Hosey
- Functional C (1997) - Pieter H. Hartel, Henk Muller (PDF)
- Hashing - Prakash Hegade
- Learn to Code With C - The MagPi Essentials (PDF)
- Learning GNU C - Ciaran O’Riordan (PDF)
- Let us C - Yashavant Kanetkar (PDF) (:card_file_box: archived)
- Modeling with Data - Ben Klemens (PDF)
- Modern C - Jens Gustedt (PDF)
- Object-Oriented Programming With ANSI-C (PDF)
- Programming in C - Bharat Kinariwala & Tep Dobry
- Programming in C - Kishori Mundargi
- Structures and C - Prakash Hegade
- The Basics of C Programming - Marshall Brain (PDF)
- The C book - Mike Banahan, Declan Brady and Mark Doran (PDF, HTML)
- The C Programming Language Handbook - Flavio Copes (PDF, EPUB, Kindle) (email address requested)
- The Craft of Text Editing or A Cookbook for an Emacs - Craig A. Finseth
- The Current C Programming Language Standard – ISO/IEC 9899:2018 (C17/C18), Draft - Open Standards Org - www.open-std.org (PDF)
- The GNU C Programming Tutorial - Mark Burgess, Ron Hale-Evans (PDF)
- The GNU C Reference Manual - Trevis Rothwell, James Youngman (HTML) (PDF)
- The little book about OS development - Erik Helin, Adam Renberg
- The New C Standard - An Economic and Cultural commentary (2009) - Derek M. Jones (PDF)
- TONC GBA Programming - Game Boy Advance Development
Relationship to other languages
Tags:
language
native
Last modified 28 April 2025