The six deadly coding sins concerning volatile Modifier

1. No volatile when it’s needed

Let’s look at a specific example.  Suppose we’re developing software for an AVR 8-bit embedded processor.  Since multiplies are going to happen in software, we’re probably interested in seeing how slow they are, Continue reading


History of Volatile modifier

What does a C program mean?

The C standard  defines the meaning of a C program in terms of an “abstract machine” that you can think of as a simple, non-optimizing interpreter for C.  The behavior of any given C implementation (a compiler plus target machine) must produce the same side effects as the abstract machine, but Continue reading

Take care of C pitfalls, they may be harmful (part1)

Have you experienced staying up checking your code for hours or maybe for days for something wrong, but you can’t figure out where the problem is.


Calm down, most of us have been through this many times. And in this article and the upcoming articles we will introduce the most known and harmful C language pitfalls that we can take care of them and avoid their effect.

Continue reading

Memory Padding and The Art of Memory Packing Part1

Who should read this

This article is about a technique for reducing the memory footprint of C programs -manually repacking C structure declarations for reduced size. To read it, you will require basic knowledge of the C programming language.
You need to know this technique if you intend to write code for memory-constrained embedded systems, or operating-system kernels Continue reading