What is padding in C?

In C what is meant by padding of bits? Consider the following structure,

struct number {
int a;
char b;
int c;
};


What is the size of this structure? An integer takes 4 bytes, char takes 1 and the third integer 4 bytes. Total 9 bytes. This is wrong. We can see the size of the structure is 12 bytes. What happens here? the compiler pads 3 bytes to char element. This is for proper alignment. In a 32 bit processor it checks the next data only after 32 bits. Else the compiler will have related problems. Now the compiler knows each data is 4 bytes wider. So the benefits.

Advertisement

Author: Abhilash

I'm Abhilash, a web developer who specializes in Ruby development. With years of experience working with various frameworks like Rails, Angular, Sinatra, Laravel, NodeJS, React and more, I am passionate about building robust and scalable web applications. Since 2010, I have been honing my skills and expertise in the Ruby on Rails platform. This blog is dedicated to sharing my knowledge and experience on topics related to Ruby, Ruby on Rails, and other subjects that I have worked with throughout my career. Join me on this journey to explore the exciting world of web development!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: