[New-bugs-announce] [issue8069] struct documentation problem and suggestion to add fixed size formats

Jeremy Sanders report at bugs.python.org
Fri Mar 5 13:44:46 CET 2010


New submission from Jeremy Sanders <jeremy at jeremysanders.net>:

The struct documentation at http://docs.python.org/library/struct.html says:

Standard size and alignment are as follows: no alignment is required for any type (so you have to use pad bytes); short is 2 bytes; int and long are 4 bytes; long long (__int64 on Windows) is 8 bytes; float and double are 32-bit and 64-bit IEEE floating point numbers, respectively. _Bool is 1 byte.

long on linux x86-64 is not 4 bytes. It is 8 bytes long:

xpc1:~:$ python
Python 2.6.2 (r262:71600, Aug 21 2009, 12:23:57) 
[GCC 4.4.1 20090818 (Red Hat 4.4.1-6)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import struct
>>> struct.calcsize('L')
8
>>> struct.calcsize('l')
8

It is 4 bytes on i386, however. The documentation should say that long is 8 bytes on linux x86-64.

Also, would it not be a good idea to add struct sizes with specific data sizes, e.g. 1 byte, 2 bytes, 4 bytes, 8 bytes, so that it is easier to write cross-platform code?

----------
components: Library (Lib)
messages: 100470
nosy: jeremysanders
severity: normal
status: open
title: struct documentation problem and suggestion to add fixed size formats
versions: Python 2.6

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8069>
_______________________________________


More information about the New-bugs-announce mailing list