This is more efficient at hardware level (needs less cpu ticks to read or
write variable).

I am asking ..how it needs less CPU ticks for accessing the variable??

On Sat, Jul 30, 2011 at 8:33 PM, Nikhil Gupta <nikhilgupta2...@gmail.com>wrote:

> As explained by someone above : Structure padding is done to try and make
> sure that variables start in memory at addresses that are a multiple of
> their size. This is more efficient at hardware level (needs less cpu ticks
> to read or write variables) and in some platforms this is mandatory,
> though not on i386. There are CPU's that can only handle double
> precision floats if they are aligned on addresses that are a multiople of 8.
>
> On Sat, Jul 30, 2011 at 8:23 PM, tech rascal <techrascal...@gmail.com>wrote:
>
>> @ Nikhil: please explain y these memory spaces r left empty??? or hw
>> structure padding increase execution speed?
>>
>> On Sat, Jul 30, 2011 at 8:05 PM, Nikhil Gupta 
>> <nikhilgupta2...@gmail.com>wrote:
>>
>>> They remain empty. You cannot use them. The purpose for which they are
>>> left will be defeated then.
>>>
>>>
>>> On Sat, Jul 30, 2011 at 1:03 PM, Puneet Gautam 
>>> <puneet.nsi...@gmail.com>wrote:
>>>
>>>> @everyone: What happens to those padded byte addresses.. do they
>>>> remain empty or what..?
>>>> Can we utilize those padded bytes in any way ..?
>>>>
>>>>
>>>> On 7/30/11, tech rascal <techrascal...@gmail.com> wrote:
>>>> > can anyone explain in detail .....how structure padding is
>>>> advantageous???
>>>> >
>>>> > On Fri, Jul 29, 2011 at 10:28 PM, Rohit Srivastava
>>>> > <access2ro...@gmail.com>wrote:
>>>> >
>>>> >> padding based on the bit interleaving(low order) which is basically
>>>> >> hardware dependent.
>>>> >>
>>>> >>
>>>> >> On Fri, Jul 29, 2011 at 10:10 PM, Puneet Gautam
>>>> >> <puneet.nsi...@gmail.com>wrote:
>>>> >>
>>>> >>> Thanks guys...so much...!!
>>>> >>>
>>>> >>> On 7/29/11, nullpointer <nullpointer...@gmail.com> wrote:
>>>> >>> > #include<stdio.h>
>>>> >>> > #include<conio.h>
>>>> >>> > struc MyStructA {
>>>> >>> >
>>>> >>> >  char a;
>>>> >>> >  char b;
>>>> >>> >  int c;
>>>> >>> > };
>>>> >>> >
>>>> >>> > struct MyStructB {
>>>> >>> >  char a;
>>>> >>> >  int c;
>>>> >>> >  char b;
>>>> >>> > };
>>>> >>> >
>>>> >>> > int main(void) {
>>>> >>> >
>>>> >>> >  struct MyStructA A;
>>>> >>> >  struct MyStructB B;
>>>> >>> >
>>>> >>> > int sizeA = sizeof(struct MyStructA);
>>>> >>> >  int sizeB = sizeof(struct MyStructB);
>>>> >>> >  return 0;
>>>> >>> >
>>>> >>> > }
>>>> >>> >
>>>> >>> > OUTPUT IS
>>>> >>> > A = 8
>>>> >>> > B = 12
>>>> >>> > Structure padding is done to try and make sure that variables
>>>> start in
>>>> >>> > memory at addresses that are a multiple of their size.
>>>> >>> > This is more efficient at hardware level (needs less cpu ticks to
>>>> read
>>>> >>> > or write variables) and in some platforms this is mandatory,
>>>> though
>>>> >>> > not on i386. There are CPU's that can only handle double precision
>>>> >>> > floats if they are aligned on addresses that are a multiople of 8.
>>>> >>> >
>>>> >>> >
>>>> >>> > In this struct:
>>>> >>> > struct MyStructA {
>>>> >>> >
>>>> >>> >  char a;
>>>> >>> >  char b;
>>>> >>> > int c;
>>>> >>> > };
>>>> >>> > the beginning of the struct is to be assumed at 0 (I'l explain
>>>> later)
>>>> >>> > a is 1 byte so it needs no padding in front of it.
>>>> >>> > the same goes for b.
>>>> >>> > but c is 4 bytes. it should be placed at an address boundary that
>>>> is a
>>>> >>> > multiple of 4, so the compiler adds 2 dummy bytes in front of it.
>>>> >>> > These 2 bytes change the size from 6 to 8.
>>>> >>> > Now in this struct:
>>>> >>> > struct MyStructB {
>>>> >>> >  char a;
>>>> >>> >  int c;
>>>> >>> >  char b;
>>>> >>> > };
>>>> >>> >
>>>> >>> > a starts on 0, so no need for padding.
>>>> >>> > c needs 3 bytes in front of it, and b needs no padding.
>>>> >>> > this would bring the struct size to 9. HOWEVER, suppose that you
>>>> place
>>>> >>> > 2 of those structs in an array, the address rules for the second
>>>> >>> > struct in the array are the same as for the first struct.
>>>> >>> > If that second struct would start at byte 10, this would not be
>>>> true
>>>> >>> > so the compiler also inserts some padding at the end of the
>>>> structure
>>>> >>> > so that the next struct after it starts at a multiple of the size
>>>> of
>>>> >>> > its largest member.
>>>> >>> >
>>>> >>> >
>>>> >>> >
>>>> >>> >
>>>> >>> > On Jul 29, 3:36 pm, Arun Vishwanathan <aaron.nar...@gmail.com>
>>>> wrote:
>>>> >>> >> @puneet : no , in this case since 4 bytes will be used for int a
>>>> and
>>>> >>> int c
>>>> >>> >> and then 1 byte for char b with 3 padded bytes next..it wud be
>>>> the
>>>> >>> >> same
>>>> >>> >> here
>>>> >>> >>
>>>> >>> >> On Fri, Jul 29, 2011 at 12:11 PM, Puneet Gautam
>>>> >>> >> <puneet.nsi...@gmail.com>wrote:
>>>> >>> >>
>>>> >>> >>
>>>> >>> >>
>>>> >>> >> > @nikhil: If i declare "Char b" after "int c".., would there be
>>>> any
>>>> >>> >> > difference...?
>>>> >>> >>
>>>> >>> >> > On 7/28/11, Nikhil Gupta <nikhilgupta2...@gmail.com> wrote:
>>>> >>> >> > > Here's another example.
>>>> >>> >>
>>>> >>> >> > > struct example
>>>> >>> >> > > {
>>>> >>> >> > > int a;
>>>> >>> >> > > char b;
>>>> >>> >> > > int c;
>>>> >>> >> > > }
>>>> >>> >>
>>>> >>> >> > > Now if a variable of type example is declared then
>>>> >>> >> > > (considering base address as 2000)
>>>> >>> >> > > a gets : 2000 to 2003
>>>> >>> >> > > b gets : 2004
>>>> >>> >> > > c gets : 2005 to 2008 ? NO
>>>> >>> >>
>>>> >>> >> > > It gets 2008 to 2011. The bytes from 2005 to 2007 (3 bytes)
>>>> are
>>>> >>> padded
>>>> >>> >> > > in
>>>> >>> >> > > this case.
>>>> >>> >>
>>>> >>> >> > > On Thu, Jul 28, 2011 at 12:18 AM, Aman Goyal <
>>>> >>> aman.goya...@gmail.com>
>>>> >>> >> > wrote:
>>>> >>> >>
>>>> >>> >> > >> yes this will be the case.
>>>> >>> >>
>>>> >>> >> > >> On Wed, Jul 27, 2011 at 11:35 PM, Puneet Gautam
>>>> >>> >> > >> <puneet.nsi...@gmail.com>wrote:
>>>> >>> >>
>>>> >>> >> > >>> @nikhil:So what u mean is that if i have:
>>>> >>> >>
>>>> >>> >> > >>> struct{
>>>> >>> >> > >>> int a;
>>>> >>> >> > >>> char b[5];
>>>> >>> >> > >>> };
>>>> >>> >>
>>>> >>> >> > >>> the size of this struct's node will be 12 not 9.., to make
>>>> it a
>>>> >>> >> > multiple
>>>> >>> >> > >>> of 4??
>>>> >>> >>
>>>> >>> >> > >>> On 7/26/11, Nikhil Gupta <nikhilgupta2...@gmail.com>
>>>> wrote:
>>>> >>> >> > >>> > Padding is not a topic of self referential structure.
>>>> >>> >>
>>>> >>> >> > >>> > Padding means that extra spaces of memory are used by the
>>>> >>> compiler
>>>> >>> >> > >>> > to
>>>> >>> >> > >>> > allocate memory. This is done to have the memory address
>>>> as a
>>>> >>> >> > multiple
>>>> >>> >> > >>> of
>>>> >>> >> > >>> > the size of the variable. This speeds up the processing
>>>> of
>>>> >>> these
>>>> >>> >> > >>> variables
>>>> >>> >> > >>> > by the compiler.
>>>> >>> >>
>>>> >>> >> > >>> > On Tue, Jul 26, 2011 at 8:09 PM, Puneet Gautam
>>>> >>> >> > >>> > <puneet.nsi...@gmail.com>wrote:
>>>> >>> >>
>>>> >>> >> > >>> >> what is meant by padding in self_referenced structure?
>>>> >>> >> > >>> >> Is it always necessary?
>>>> >>> >>
>>>> >>> >> > >>> >> --
>>>> >>> >> > >>> >> You received this message because you are subscribed to
>>>> the
>>>> >>> >> > >>> >> Google
>>>> >>> >> > >>> Groups
>>>> >>> >> > >>> >> "Algorithm Geeks" group.
>>>> >>> >> > >>> >> To post to this group, send email to
>>>> >>> algogeeks@googlegroups.com.
>>>> >>> >> > >>> >> To unsubscribe from this group, send email to
>>>> >>> >> > >>> >> algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > >>> >> For more options, visit this group at
>>>> >>> >> > >>> >>http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> > >>> > --
>>>> >>> >> > >>> > Nikhil Gupta
>>>> >>> >> > >>> > Senior Co-ordinator, Publicity
>>>> >>> >> > >>> > CSI, NSIT Students' Branch
>>>> >>> >> > >>> > NSIT, New Delhi, India
>>>> >>> >>
>>>> >>> >> > >>> > --
>>>> >>> >> > >>> > You received this message because you are subscribed to
>>>> the
>>>> >>> Google
>>>> >>> >> > >>> Groups
>>>> >>> >> > >>> > "Algorithm Geeks" group.
>>>> >>> >> > >>> > To post to this group, send email to
>>>> >>> algogeeks@googlegroups.com.
>>>> >>> >> > >>> > To unsubscribe from this group, send email to
>>>> >>> >> > >>> > algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > >>> > For more options, visit this group at
>>>> >>> >> > >>> >http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> > >>> --
>>>> >>> >> > >>> You received this message because you are subscribed to the
>>>> >>> Google
>>>> >>> >> > Groups
>>>> >>> >> > >>> "Algorithm Geeks" group.
>>>> >>> >> > >>> To post to this group, send email to
>>>> algogeeks@googlegroups.com.
>>>> >>> >> > >>> To unsubscribe from this group, send email to
>>>> >>> >> > >>> algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > >>> For more options, visit this group at
>>>> >>> >> > >>>http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> > >>  --
>>>> >>> >> > >> You received this message because you are subscribed to the
>>>> >>> >> > >> Google
>>>> >>> >> > Groups
>>>> >>> >> > >> "Algorithm Geeks" group.
>>>> >>> >> > >> To post to this group, send email to
>>>> algogeeks@googlegroups.com.
>>>> >>> >> > >> To unsubscribe from this group, send email to
>>>> >>> >> > >> algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > >> For more options, visit this group at
>>>> >>> >> > >>http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> > > --
>>>> >>> >> > > Nikhil Gupta
>>>> >>> >> > > Senior Co-ordinator, Publicity
>>>> >>> >> > > CSI, NSIT Students' Branch
>>>> >>> >> > > NSIT, New Delhi, India
>>>> >>> >>
>>>> >>> >> > > --
>>>> >>> >> > > You received this message because you are subscribed to the
>>>> Google
>>>> >>> >> > > Groups
>>>> >>> >> > > "Algorithm Geeks" group.
>>>> >>> >> > > To post to this group, send email to
>>>> algogeeks@googlegroups.com.
>>>> >>> >> > > To unsubscribe from this group, send email to
>>>> >>> >> > > algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > > For more options, visit this group at
>>>> >>> >> > >http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> > --
>>>> >>> >> >  You received this message because you are subscribed to the
>>>> Google
>>>> >>> >> > Groups
>>>> >>> >> > "Algorithm Geeks" group.
>>>> >>> >> > To post to this group, send email to
>>>> algogeeks@googlegroups.com.
>>>> >>> >> > To unsubscribe from this group, send email to
>>>> >>> >> > algogeeks+unsubscr...@googlegroups.com.
>>>> >>> >> > For more options, visit this group at
>>>> >>> >> >http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >>
>>>> >>> >> --
>>>> >>> >>  Arun Vish
>>>> >>> >> Graduate Student
>>>> >>> >> Department of Computer Science
>>>> >>> >> University of Southern California
>>>> >>> >
>>>> >>> > --
>>>> >>> > You received this message because you are subscribed to the Google
>>>> >>> Groups
>>>> >>> > "Algorithm Geeks" group.
>>>> >>> > To post to this group, send email to algogeeks@googlegroups.com.
>>>> >>> > To unsubscribe from this group, send email to
>>>> >>> > algogeeks+unsubscr...@googlegroups.com.
>>>> >>> > For more options, visit this group at
>>>> >>> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >>> >
>>>> >>> >
>>>> >>>
>>>> >>> --
>>>> >>> You received this message because you are subscribed to the Google
>>>> Groups
>>>> >>> "Algorithm Geeks" group.
>>>> >>> To post to this group, send email to algogeeks@googlegroups.com.
>>>> >>> To unsubscribe from this group, send email to
>>>> >>> algogeeks+unsubscr...@googlegroups.com.
>>>> >>> For more options, visit this group at
>>>> >>> http://groups.google.com/group/algogeeks?hl=en.
>>>> >>>
>>>> >>>
>>>> >>  --
>>>> >> You received this message because you are subscribed to the Google
>>>> Groups
>>>> >> "Algorithm Geeks" group.
>>>> >> To post to this group, send email to algogeeks@googlegroups.com.
>>>> >> To unsubscribe from this group, send email to
>>>> >> algogeeks+unsubscr...@googlegroups.com.
>>>> >> For more options, visit this group at
>>>> >> http://groups.google.com/group/algogeeks?hl=en.
>>>> >>
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> Groups
>>>> > "Algorithm Geeks" group.
>>>> > To post to this group, send email to algogeeks@googlegroups.com.
>>>> > To unsubscribe from this group, send email to
>>>> > algogeeks+unsubscr...@googlegroups.com.
>>>> > For more options, visit this group at
>>>> > http://groups.google.com/group/algogeeks?hl=en.
>>>> >
>>>> >
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Algorithm Geeks" group.
>>>> To post to this group, send email to algogeeks@googlegroups.com.
>>>> To unsubscribe from this group, send email to
>>>> algogeeks+unsubscr...@googlegroups.com.
>>>> For more options, visit this group at
>>>> http://groups.google.com/group/algogeeks?hl=en.
>>>>
>>>>
>>>
>>>
>>> --
>>> Nikhil Gupta
>>> Senior Co-ordinator, Publicity
>>> CSI, NSIT Students' Branch
>>> NSIT, New Delhi, India
>>>
>>>  --
>>> You received this message because you are subscribed to the Google Groups
>>> "Algorithm Geeks" group.
>>> To post to this group, send email to algogeeks@googlegroups.com.
>>> To unsubscribe from this group, send email to
>>> algogeeks+unsubscr...@googlegroups.com.
>>> For more options, visit this group at
>>> http://groups.google.com/group/algogeeks?hl=en.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Algorithm Geeks" group.
>> To post to this group, send email to algogeeks@googlegroups.com.
>> To unsubscribe from this group, send email to
>> algogeeks+unsubscr...@googlegroups.com.
>> For more options, visit this group at
>> http://groups.google.com/group/algogeeks?hl=en.
>>
>
>
>
> --
> Nikhil Gupta
> Senior Co-ordinator, Publicity
> CSI, NSIT Students' Branch
> NSIT, New Delhi, India
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to