Re: Struct usage and varying sizes of h, l, etc



On 2008-05-20, Robert Kern <robert.kern@xxxxxxxxx> wrote:

I'm looking at the struct module for binary packing of ints
and floats. The documentation refers to C datatypes. It's
been many years since I looked at C, but I seem to remember
that the data type sizes were not fixed -- for example, an int
might be two byes on one machine, and four bytes on the next.
Can any C programmers verify this? If it is true, does that
mean that struct.pack('h', 8001) might give me different
results depending on the machine it's running on?

Right. I believe (but could be wrong) that "char" is defined
to be one byte,

Yes, C defines "char" to be one byte, but it doesn't define the
size of a "byte" other than it's at least big enough to hold
one character (or something like that). In practice, a byte is
pretty much guaranteed to be at least 8 bits. But, on some
targets a "byte" is 16 bits, and on others a byte is 32 bits.

However, I'm not aware of any Python implementations on those
targets...

--
Grant Edwards grante Yow! Clear the laundromat!!
at This whirl-o-matic just had
visi.com a nuclear meltdown!!
.