Author: Robert Hyatt
Date: 20:20:07 05/09/03
Go up one level in this thread
On May 09, 2003 at 12:46:49, Leen Ammeraal wrote:
>On May 09, 2003 at 10:27:43, Robert Hyatt wrote:
>
>>On May 09, 2003 at 01:06:21, Leen Ammeraal wrote:
>>
>>>On May 08, 2003 at 21:00:46, Zach Wegner wrote:
>>>
>>>>In my program, I have the move data structure:
>>>>typedef struct
>>>>{
>>>> union
>>>> {
>>>> struct
>>>> {
>>>> char from;
>>>> char to;
>>>> char bits;
>>>> char piece;
>>>> };
>>>> unsigned int move;
>>>> };
>>>> unsigned int score;
>>>>} SMOVE;
>>>>
>>>>Is there any specific order in which the chars are aligned into the int, or is
>>>>it compiler-dependent?
>>>>
>>>>Zach
>>>
>>>It is compiler dependent.
>>>Leen
>>
>>
>>It can't be. Only bit-fields are left to the compiler to decide which end to
>>start from. If the above was compiler dependent it would be _impossible_ to
>>read in data files produced by another compiler on the same machine...
>
>You are right with regard to the order (from, to, bits, piece in
>the example). I was thinking of the 'endian problem' as you
>refer to yourself in your other posting. Also, there may be
>holes in memory between the components of a structure, although
>it is unlikely that any compiler will use holes
>in the current case. But in general, the size of a struct may
>be larger than the sum of the sizes of the components.
>I suppose you knew this already.
>Leen
Yes. You are talking about alignment issues, which is important on some
architectures, not so on others...
They are generally called "slack bytes" in docs I see...
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.