The following outline is provided as an overview of and topical guide to C: C is a general-purpose, procedural, compiled, and statically typed programming language. It was created by Dennis Ritchie in 1972 at Bell Labs as a successor to the B language.
What type of language is C? C can be described as all of the following:
Programming language — artificial language designed to communicate instructions to a machine, particularly a computer. Compiled language — language implemented through compilers rather than interpreters Procedural programming language — programming paradigm based on the concept of procedure calls General-purpose programming language — designed for writing software in a wide variety of application domains Statically typed programming language — type checking is performed at compile-time
History of C B programming language — precursor to C K&R C — early version described by Kernighan and Ritchie ANSI C / ISO C standards: C89/C90 C99 C11 C17 C23 — current standard
General C concepts
Issues / Limitations Constructs that behave differently in C and C++ Cyber security Undefined behavior
C Toolchain
C compilers
GCC — GNU Compiler Collection Clang — LLVM C compiler MSVC — Microsoft Visual C++ compiler (supports C) TinyCC Turbo C
C libraries
C Standard Library
The C standard library provides fundamental routines for:
Input/output (stdio.h) String handling (string.h) Mathematical computations (math.h) Memory management (stdlib.h) Time and date (time.h)
Other notable libraries GLib SDL GSL libcurl OpenSSL
Notable projects written in C CPython — the reference implementation of the Python programming language Git — version control system Linux kernel, Bash, Coreutils, Autoconf and other command line utilities Lua, PHP, Perl — Scripting languages PostgreSQL — relational database systems Redis — in-memory database SQLite — embedded SQL database engine Unix — originally rewritten in C at Bell Labs Vim GNOME, MATE and Xfce — desktop environments X window system and Wayland — windowing systems Apache HTTP Server and nginx — Web servers cURL — command line web client and library HAProxy — multiprotocol load balancer and reverse proxy OpenSSH OpenSSL OpenLDAP
Example source code Articles with example C code
C publications
Books about C Andrew Koenig – C Traps and Pitfalls Brian W. Kernighan – The C Programming Language Guy L. Steele Jr. – C: A Reference Manual Herbert Schildt – C, The Complete Reference Peter van der Linden – Expert C Programming: Deep C Secrets
Magazines about C C/C++ Users Journal — (historical publication)
C programmers John Carmack – game programmer, known for Doom and Quake. Brian Kernighan — wrote The C Programming Language book Rob Pike – worked on Unix and Plan 9, contributed to C and its ecosystem. Dennis Ritchie — created the C programming language Richard Stallman – founder of the GNU Project Tim Sweeney – founder of Epic Games and creator of Unreal Engine Ken Thompson — Unix Linus Torvalds — Linux
C dialects Cyclone — safe variant Embedded C GNU C — features specific to GCC K&R C Microsoft C — Microsoft-specific extensions Objective-C — object-oriented extension of C
C learning resources
Codecademy – interactive C programming lessons GeeksforGeeks – tutorials, coding examples, and interactive programming for C concepts and data structures Learn-C.org – free interactive C tutorial for beginners CProgramming.com Tutorial – tutorials, examples, and best practices for learning C W3Schools – beginner-friendly C tutorials Wikibooks C Programming – free open-content textbook
Competitive programming Codeforces – an online platform for programming contests that supports C submissions Codewars – gamified coding challenges HackerRank – competitive programming and interview preparation site with C challenges LeetCode – online judge and problem-solving platform
See also Compatibility of C and C++ List of software programming journals List of C-family programming languages Outline of computer programming Outline of software Outline of software engineering
Outlines of other programming languages Outline of the C sharp programming language Outline of the C++ programming language Outline of the Java programming language Outline of the JavaScript programming language Outline of the Perl programming language Outline of the Python programming language Outline of the Rust programming language
References
External links
ISO C standard information C reference on cppreference.com

