Safekipedia
American inventionsC (programming language)C (programming language) librariesC programming language family

C (programming language)

Adapted from Wikipedia · Discoverer experience

A framed print of the original 'Hello World' program written in the C programming language, created in 1974 by Brian Kernighan.

C is a general-purpose programming language created in the 1970s by Dennis Ritchie . It was designed to give programmers direct control over a computer's hardware while still being easy to use. This balance makes C special—it can handle very simple tasks, like controlling tiny sensors, and very complex ones, like powering entire operating systems.

Originally developed at Bell Labs between 1972 and 1973, C was used to rebuild the Unix operating system. During the 1980s, it became extremely popular and is still one of the most widely used languages today. You can find C running everywhere—from giant supercomputers down to tiny chips inside microcontrollers and embedded systems .

C works by letting programmers write instructions that closely match a computer's inner workings. It can be compiled into fast machine code, meaning programs written in C often run very quickly. Even though it doesn’t include every modern feature by default, C is flexible enough that extra tools—like object orientation or memory management—can be added when needed. Because of its power and flexibility, C has often been one of the top-ranked languages in the TIOBE index .

Characteristics

Dennis Ritchie (right), the inventor of the C programming language, with Ken Thompson

The C programming language has many useful features. It allows free-form source code and uses semicolons to end statements. Code blocks are created with curly braces, and functions contain the executable code.

C supports control flow with statements like if, for, do, while, and switch. It includes arithmetic, bitwise, and logic operators. The language has a small number of keywords and supports recursion and static data typing. C also allows direct access to computer memory through pointers and includes a preprocessor for macros and file inclusion, making it useful for operating systems and embedded systems.

"Hello, world" example

The "Hello, World!" program is often used to introduce people to programming. It simply prints the words "hello, world" to the screen.

The original version looks like this:

main()
{
    [printf](/wiki/Printf)("hello, world\\n");
}
"Hello, World" program by Brian Kernighan (1978)

A more modern version is:

#include 

int main(void)
{
    printf("hello, world\\n");
}

The first line tells the computer to include special instructions for printing text. The main function is where the program starts, and printf is used to display the message. The \n at the end makes the cursor move to the next line after printing.

History

The C programming language started with the development of the Unix operating system. It was first created in the 1970s by Dennis Ritchie and Ken Thompson, who were working with a computer called the PDP-11. They needed a better way to write programs for their system, so they developed C, which made it easier to manage and improve Unix.

Over time, C became very popular and was used for many different types of programs. It was updated several times to add new features and make it work better on new kinds of computers. Today, C is still used for creating operating systems and other important software, even though it was created a long time ago.

Main article: B (programming language) Main article: ANSI C Main article: C99 Main article: C11 Main article: C17 Main article: C23 Main article: C2Y Main article: Embedded C

Timeline of C language
YearInformal
name
Official
standard
1972first release—N/a
1978K&R C—N/a
1989,
1990
ANSI C, C89,
ISO C, C90
ANSI X3.159-1989
ISO/IEC 9899:1990
1999C99, C9XISO/IEC 9899:1999
2011C11, C1XISO/IEC 9899:2011
2018C17, C18ISO/IEC 9899:2018
2024C23, C2XISO/IEC 9899:2024
TBAC2Y

Definition

C is a programming language with a clear structure. It uses special symbols to mark comments, and its code is organized into functions and declarations. These functions can contain various types of statements that control how the program runs, like loops and condition checks.

The language includes reserved words that have special meanings and cannot be used as regular variable names. It also offers many operators to perform calculations and manipulate data, making it flexible for different programming tasks. C handles data in specific types, such as numbers and characters, and allows direct memory access through pointers, which are powerful but need careful handling.

Language tools

Many tools help C programmers write better code by finding mistakes that compilers might miss. One popular tool is Lint, used to check for unusual or risky code early in the development process. Programmers often run Lint first, and then use the C compiler to build their programs.

Other tools and features help with tasks like checking array limits to prevent errors, tracking memory use, and managing data more safely. Tools such as Purify and Valgrind are examples that assist in finding problems while a program runs.

Uses

Some software written in C

C has been widely used to create both everyday applications and system-level tools. It is especially good for building operating systems and programs that need to work closely with the computer's hardware.

C is often used for system programming because it gives programmers a lot of control over how the computer works. It is fast and efficient, making it a good choice for tasks that need to run quickly and use memory wisely. Many important programs, like web servers and parts of computer games, are written in C because of these qualities. Additionally, C is used to build tools and libraries that help other programming languages run, showing how versatile and widely used it is.

Limitations

C, created by Dennis Ritchie, is a powerful but complex programming language. It gives programmers close control over a computer's hardware, but this can also lead to mistakes. For example, handling memory can be tricky and might result in problems if not done carefully. The language also allows direct access to memory, which can sometimes cause errors if not managed properly.

Some parts of C are not very strict, meaning programmers need to be very careful to avoid mistakes. There are also some tools and special ways to use C that can help reduce these problems, making the code safer and easier to maintain.

Related languages

Main article: List of C-family programming languages

TIOBE index

Many programming languages came after C and were influenced by it. Languages like C++, C#, JavaScript, Python, and Ruby borrowed ideas from C, especially how they structure statements and expressions.

When object-oriented programming became popular, languages like C++ and Objective-C built on C to add new features. C++ was created by adding object-oriented tools to C while keeping much of its original style. Objective-C also added object-oriented features to C, mixing C’s syntax with ideas from another language called Smalltalk.

This article is a child-friendly adaptation of the Wikipedia article on C (programming language), available under CC BY-SA 4.0.

Images from Wikimedia Commons. Tap any image to view credits and license.