[issue7189] struct.calcsize returns strange size

Mark Dickinson report at bugs.python.org
Fri Oct 23 12:37:09 CEST 2009


Mark Dickinson <dickinsm at gmail.com> added the comment:

I think the calcsize result is correct here.  With the native struct 
format, padding is included in the struct.

In the second case, there are three bytes of padding after the 'cc' and 
before the 'i'.  This keeps the 'i' aligned on a 4-byte boundary.  If you 
look at the results of struct.pack, you can see the padding explicitly:

Python 2.6.1 (r261:67515, Jul  7 2009, 23:51:51) 
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import struct
>>> struct.pack('ihhi35scci', 123456789, 10000, 10000, 321456789, 
"abcdefghijklmnopqrstuvwxyz123456789", '+', '*', 231456789)
"\x15\xcd[\x07\x10'\x10'\x95\n)\x13abcdefghijklmnopqrstuvwxyz123456789+*\x
00\x00\x00\x15\xc0\xcb\r"

----------
nosy: +mark.dickinson
resolution:  -> invalid
status: open -> closed

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


More information about the Python-bugs-list mailing list