http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-programming-in-c-january-iap-2010/lecture-notes/MIT6_087IAP10_lec06.pdf

On 2/29/12, Gene <[email protected]> wrote:
> This depends on the compiler and even on the options you give the
> compiler.  The C nor C++ standards don't say.
>
> So the asker of the question hasn't give you enough information.
>
> If you assume 32-bit x86 gcc with no packing options or pragmas, I
> think shorts (which are 2 bytes long) are aligned on 2-byte
> boundaries.  Longs and ints (both 4 bytes long) are on 4-byte
> boundaries.  Chars (1 byte) can go anywhere.  If you follow these
> rules, then the first will be laid out:
>
> Field @ Offset
>
> a @ 0 // next 3 bytes are padding to reach next 4-byte boundard
> b @ 4
> c @ 8 // next 2 bytes are padding
> d @ 12
>
> so the struct will be 16 bytes in size (a long is 4 bytes).
>
> In the second case you'll have
>
> a @ 0  // next 1 byte are padding
> b @ 2
> c @ 4  // next 3 bytes are padding
> d @ 8
>
> so the struct will be 12 bytes in size.
>
> Even if you are using a 64-bit gcc (without the -m32 flag), you'll get
> an entirely different answer!
>
>
> On Feb 29, 11:13 am, Decipher <[email protected]> wrote:
>> I need some help in understanding how padding works ??
>> Please answer the following questions with proper explanations..
>>
>> struct mystruct1
>> {
>>   char a;
>>   int b;
>>   short c;
>>   long d;
>>
>> };
>>
>> struct mystruct2
>> {
>>   char a;
>>   short b;
>>   char c;
>>   long d;
>>
>> };
>>
>> What's the sizeof above 2 structures and why ??
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> 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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to