Skip to main content
The 2024 Developer Survey results are live! See the results

C is a general-purpose computer programming language used for operating systems, games, and other high performance work and is clearly distinct from C++. It was developed in 1972 by Dennis Ritchie for use with the Unix operating system.

C (pronounced "See", like the letter C) is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the UNIX operating system. Its design provides constructs that map efficiently to typical machine instructions, and, therefore, it found lasting use in applications that had formerly been coded in assembly language. It is a highly efficient procedural oriented programming language and has emphasis on functions, whereas modern object-oriented programming languages have emphasis on data.

C was designed for implementing system software, but is also widely used for developing portable application software.

C is one of the most widely used programming languages of all time and there are very few computer architectures for which a C compiler does not exist. C has greatly influenced many other popular programming languages, most notably , which began as an extension to C.


C is an imperative (procedural) systems implementation language. It was designed to be compiled using a relatively straightforward compiler, to provide low-level access to memory, to provide language constructs that map efficiently to machine instructions, and to require minimal runtime support. C was therefore useful for many applications that had formerly been coded in assembly language.

Despite its low-level capabilities, the language was designed to encourage cross-platform programming. A standards-compliant and portably written C program can be compiled for a very wide variety of computer platforms and operating systems with few changes to its source code. The language has become available on a very wide range of platforms, from embedded micro-controllers to supercomputers.

Is it C, C++ or both?

This tag is for questions related to C, not C++. In some cases, you may be working with both and applying both tags is entirely appropriate. However, please refrain from using both tags in an effort to help your question reach a wider audience. After all, C++ answers won't help you solve the problem in C, and good C answers often do not describe the best approach in C++.

Important notes that may save you time

Definitive Book Guide

The following list of books has been compiled by users as a definitive list of quality references for all levels of C programmer. If you are looking to learn or improve your C, you may find some of the following texts highly useful.

Reference Style - All Levels



Above Intermediate

Free C Programming Books

Chat Room

Chat about C with Stack Overflow users

Code Language (used for syntax highlighting): lang-c