C Language Programming

Why start with C language programming? Isn't it too old? Actually, there are very good reasons to start with C.

    Note: If you are rather looking for a tutorial, go to the tutorials "C language tutorial" or "Programming for beginners".



First of all, many beginners think that C is old and it is hardly used anymore. Not true! It is one of the most used programming languages today. And you will see that in a second.

As you will see below, C has many advantages. In fact it is one of the best choices for a first language. The reason for this is that learning C you learn how the things happen on a lower level. Then you, still, can transition to another language, if you like, but you will know what is happening behind the scenes.

For instance it is common practice to learn C, before C++. The transition is very natural.

Origin and purpose

The C programming language was created back in the days between 1969 - 1973. It was created by Dennis Ritchie at Bell Labs.

C was created with a purpose – to serve as creation tool for the UNIX operating system. So C was designed to create OSs. That’s why more than 40 years later it is still widely used to write operating systems or big parts of them.

For instance, the kernel of pretty much all modern systems was written in C(Windows, Mac, Linux, Android, Unix..).

Besides that, C language programming has application in many different areas:

  • In embedded programming for different microcontrollers.
  • To create hardware drivers.
  • To create user applications.
  • Almost all modern operating systems are partially or entirely written in C.

C Language Programming Standards

In the history of C, there are several standards. The most important today are ANSI C (adopted by ISO C90), C99 and C11. These three standards represent the year in which they where published. The standards mainly expanded the language over the years, adding more capabilities.

ANSI C (C89), (ISO C90)

Between 1983-1989, the American National Standards Institute created the ANSI C standard. This was the first major official standard for the language. Apparently they did a very good job, because the next year the International Organization for Standardization adopted the ANSI C as ISO C90 (the official name is ISO/IEC 9899:1990).

Even today, some compilers still rely only on this standard.

The language consisted of 32 keywords, 15 headers file in the standard library and several categories of operators.

C99

In 1999 ISO updated the language, adding new stuff. The C99 adds 5 new keywords and 6 library headers. It also adds new features, like inline functions, one line comments and others.

C11

C11 is the current standard for the C programming language. It also adds many new features - 7 keywords, 5 library headers and others.

Note, that not all compilers support the new standards. Also most of them work in ANSI mode by default. You need to check if your compiler supports the new standards. If it does look for a checkbox, dropdown to pick the standard mode or for a command line, where you have to add something like " -c11" to switch to the new standard.

C Language Programming - Advantages

Why C has so wide range of usage? C is a well structured language. It provides you with control over just about anything. Few languages are so powerful and efficient.

It has given a lot to the programming world. Many of the modern languages are derived directly or indirectly from it.
For example, C++ is a direct descendant of C. Languages like Java and C# are based on C++ and C, using similar syntax.
It is not a surprise that a popular term today is "C-like" syntax.

Additionally it is:

  • Speed efficient – the code produced by C runs almost as fast as assembly code.
  • Memory efficient.   
  • C code could be compiled for many different platforms.
  • It is a “high level” language, but is often referred to as “middle level”, because:
     - It allows the embedding of assembly code where speed is crucial.
     - C provides low level access to the memory
     - You can use a number of preprocessor commands
   Search this site: