• admin@embedclogic.com

C Introduction

C programming language discovered by Denis Richie between 1968 to 1973 during the development of Unix Operating System.

C language is general purpose and imperative procedural language.

(Set of statements(Imperative)->Set of functions(procedure)->C program).

Cross-platform program compilation with minimal changes in program and its low-level capabilities makes it all-time favorite programming language for vendors.C language is very close to machine language. machine instructions and memory can directly map in this programming language.

Due to its low-level capabilities, C language took over assembly language.It is the only language which is close to the programmer as well as the machine but you need not to remember instruction to write the program as we do in assembly language.

Due to its popularity, C has been standardized by ANSI and ISO in 1989.Many languages like C++, Java, C#, PHP, Python, and many more languages are directly or indirectly borrowed from C.

Development of C

As time passes, several changes and new features added to make it a more and more powerful language. these C stages categorize as follows-

1. K&R C

It was the first edition of the C language “The C Programming Language“.Since it was published by Brian Kernighan and Dennis Ritchie so this edition was famous for their last name alphabets “K&R”.

Features included:

  1. Standard I/O library
  2. long int and unsigned int data type
  3. Compound assignment of the form =op(= +) has changed to op=(+ =) to ensure the exact operation of the statement.

example,

x =-10 may be treated as x = -10

so to make it clear K&R C changes it as x – =10.

Argument validation doesn’t perform by k&R C compiler in Function prototype declaration.

Output: K&R c Compiler will not give any error while the difference in declaration and definition argument because here the argument is not validated by the compiler.The only function those have non-int return type need to declare.

2. ANSI C

Many more features like the void, struct, union and enumerated data type addition by different vendors in following years. This additional feature causes a lack of agreement on the standard library.

Due to Its popularity, ANSI forms a committee to make a standard specification of C.In 1989 ANSI release second ratified edition of C “Programming Language C”.this is also known as ANSI C/C89.In 1990 ANSI C standard was adopted by ISO and it is also known as C89 or C90.

Features Included:

  1. void Pointer
  2. Function Pointer
  3. Support of International Character Sets and locals etc.

3. C99

ISO C90 was revised in 1999 and named as “C99”.

Feature Included:

  1. Inline function
  2. data type like long long int as well complex data type to represent the complex number.
  3. Support for Variable-length array
  4. one line comments etc.

4. C11

This revision is done in 2011.

Feature Included

  1. Improves compatibility with C++
  2. Limit adoption of new features until not tested with existing.
  3. Addition of type generic macros,multi-threading and the anonymous structure in the library, etc.

5. Embedded C

To complete embedded C requirement C language has done some non- standard features addition. It is additional support for Embedded System.

Included features:

  • Fixed-point arithmetic
  • Multiple distinct memory banks
  • Basic I/O operations.

Why should one learn C language?

Although C learning is not mandated for all programmer, its all depend on your requirement yet I will recommend it if you are new to programming.

C language learning makes you more understanding towards other languages because I told you already almost every language has taken some features of C directly or indirectly.

But don’t worry if you are willing to jump on your desired language then no problem, you can. But if you are planning to learn C++ or Embedded C then you must be familiar with C language.

Future of the C language

Future of C language will never end because the base of every language is C language.An operating system for all platform, compiler writing, Micro-controller programming, Device Driver programming, and all firmware programming is written in C language so I think C will maintain its scope.