Difference Between C and Embedded C

Though C and embedded C appear different and are used in different contexts, they have more similarities than the differences. Most of the constructs are same; the difference lies in their applications.

C is used for desktop computers, while embedded C is for micro controller based applications. Accordingly, C has the luxury to use resources of a desktop PC like memory, OS, etc. While programming on desktop systems, we need not bother about memory. 

Suggested Readings:
Embedded Systems and C Programming - Home Page - Index

More Links:
Embedded C know How
Programming Using Embedded C
Embedded Electronics-Real-time software-Introduction
Karnaugh_Maps-Digital Electronics Tutorials
Micro-controllers-Basic Introduction Tutorials

However, embedded C has to use with the limited resources (RAM, ROM, I/Os) on an embedded processor. Thus, program code must fit into the available program memory. If code exceeds the limit, the system is likely to crash.

Compilers for C (ANSI C) typically generate OS dependent executable. Embedded C requires compilers to create files to be downloaded to the micro controllers/microprocessors where it needs to run. Embedded compilers give access to all resources which is not provided in compilers for desktop computer applications.

Embedded systems often have the real-time constraints, which is usually not there with desktop computer applications.


Embedded systems often do not have a console, which is available in case of desktop applications.


So, what basically is different while programming with embedded C is the mindset; for embedded applications, we need to optimally use the resources, make the program code efficient, and satisfy real time constraints, if any. All this is done using the basic constructs, syntax's, and function libraries of ‘C’.

No comments