Golgappa.net | Golgappa.org | BagIndia.net | BodyIndia.Com | CabIndia.net | CarsBikes.net | CarsBikes.org | CashIndia.net | ConsumerIndia.net | CookingIndia.net | DataIndia.net | DealIndia.net | EmailIndia.net | FirstTablet.com | FirstTourist.com | ForsaleIndia.net | IndiaBody.Com | IndiaCab.net | IndiaCash.net | IndiaModel.net | KidForum.net | OfficeIndia.net | PaysIndia.com | RestaurantIndia.net | RestaurantsIndia.net | SaleForum.net | SellForum.net | SoldIndia.com | StarIndia.net | TomatoCab.com | TomatoCabs.com | TownIndia.com
Interested to Buy Any Domain ? << Click Here >> for more details...


What is structure padding ?

Answers were Sorted based on User's Feedback



What is structure padding ?..

Answer / vijoeyz

[See http://www.geocities.com/vijoeyz/faq/c/padding.txt]

All modern CPUs expect that the fundamental types --
int's, float's and
long's -- are stored in the memory at their natural
boundary; typically, at
addresses that are multiples of their length. Some CPU work
efficiently if the
memory is properly aligned, and some can work in either case.

For the following examples, let us assume:

sizeof (int) == 4
sizeof (char) == 1
sizeof (float) == 4

When a C compiler processes a structure, it adds padding
bit(s)/byte(s), if
required, between the members to ensure proper alignment.
Consider the
following scenario:

> What is the difference between the following structures:
>
> struct pad1
> {
> int a;
> char c;
> float f;
> };
>

"a" and "f" should occur at an address multiple of 4,
whereas "c" can take
any -- odd or even -- address. So, the structure appears in
the memory as
shown:

___________________
| a0 | a1 | a2 | a3 | 4-byte alignement
------------------- P is padding byte
| c0 | P0 | P1 | P2 |
-------------------
| f0 | f1 | f2 | f3 |
-------------------

> and
>
> struct pad2
> {
> float f;
> int a;
> char c;
> };
>
___________________
| f0 | f1 | f2 | f3 | 4-byte alignement
------------------- P is padding byte
| a0 | a1 | a2 | a3 |
-------------------
| c0 | P0 | P1 | P2 |
-------------------

Following point are worth noting:

* The compiler also ensures that the structure as a
whole appears at an
aligned address.

* Padding does NOT occur at the beginning of a structure.

* The value of padding bytes or bits are
implementation defined.

> What is the use of padding?

* Padding is useful, for example, in conforming to
externally imposed
layouts of machine registers.

* The obvious advantage is efficient access by CPU.


> And finally what is ring buffer?Where is it used.Someone
pls. explain
> in detail.

* A buffer of data which is of fixed size; when it
fills, further data is
placed back at the start of the buffer,
overwriting the old data,
in a "ring". Commonly used in device drivers.

For more examples, use the Google the keyword "define:
ring buffer",
excluding the quotes.

Is This Answer Correct ?    32 Yes 2 No

What is structure padding ?..

Answer / priya

structure padding is used to pad the data in
such a way that it can be sent to external devices.
Sometimes, the data is padded in such a way
that it can be used on little endian vs big
endian processors
Padding is done to fast access of data from memory.

Is This Answer Correct ?    14 Yes 8 No

What is structure padding ?..

Answer / anil

* Padding is useful, for example, in conforming to
externally imposed
layouts of machine registers.

* The obvious advantage is efficient access by CPU.

Is This Answer Correct ?    4 Yes 2 No

Post New Answer

More C Interview Questions

hi send me sample aptitude papers of cts?

0 Answers  


What are the properties of union in c?

0 Answers  


hi , please send me NIC written test papers to sbabavalli@gmail.com

0 Answers   NIC,


What is switch in c?

0 Answers  


What is an auto keyword in c?

0 Answers  


main() { char *p; p="Hello"; printf("%c\n",*&*p); }

2 Answers   ME,


prog for 1st five prime numbers in 2^x - 1

0 Answers  


why programs in c are running with out #include<stdio.h>? some warnings are display in terminal but we execute the program we get answer why? eg: main() { printf("hello world "); }

0 Answers  


How to use c/c++ code in JAVA

10 Answers   CDAC, IBM, Satyam, Scope International,


how does the C compiler interpret the following two statements p=p+x; q=q+y; a. p=p+x; q=q+y b. p=p+xq=q+y c. p=p+xq; q=q+y d. p=p+x/q=q+y

2 Answers   TCS, Tech Synergy,


What are c identifiers?

0 Answers  


How old is c programming language?

0 Answers  


Categories