Author: Robert Hyatt
Date: 21:34:34 12/05/03
Go up one level in this thread
On December 05, 2003 at 23:38:55, Miguel A. Ballicora wrote:
>On December 05, 2003 at 21:24:19, Robert Hyatt wrote:
>
>>I have a structure that looks like this:
>>
>>struct BOOK_POSITION {
>> long long signature;
>> unsigned int status;
>> float learn;
>> int CAP;
>>}
>>
>>sizeof(above) gives 20 on my dual xeon, 24 on the
>>opteron. I'd like to make it 20 so that my binary book
>>can be shared between the opteron and the rest of the
>>intel world.
>>
>>Is there a reasonably portable way to fix this???
>>
>>(note the long long becomes a long on the opteron, the rest
>>are not changed.)
>
>The only portable way to do it is to write the information one byte at a time in
>a canonical order. Then, you read it back in the same order, one byte at a time.
>
>I have two functions, be_pack() and be_unpack().
>The first one, transforms the bookentry into an array of bytes (unsigned char).
>Then I save those in order. The second function, after I read the bytes in order
>into an array of bytes, transform them into a bookentry.
>I can even save some space because the data is packed as much as I can.
>
>The overhead is negligible compared to the I/O. In that way, my book is
>compatible across any system, windows, linux etc and using any compiler.
>
>Miguel
That's been "on my list" for a long while. This might be the impetus I need
to fix it. :)
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.