Issue7189
Created on 2009-10-23 10:24 by igor.mikushkin, last changed 2009-10-23 10:37 by mark.dickinson.
|
msg94379 - (view) |
Author: Igor Mikushkin (igor.mikushkin) |
Date: 2009-10-23 10:24 |
|
I think in second case struct size should be 53.
In [31]: struct.calcsize('ihhi35scc')
Out[31]: 49
In [32]: struct.calcsize('ihhi35scci')
Out[32]: 56
|
|
msg94380 - (view) |
Author: Mark Dickinson (mark.dickinson) |
Date: 2009-10-23 10:37 |
|
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"
|
|
| Date |
User |
Action |
Args |
| 2009-10-23 10:37:08 | mark.dickinson | set | status: open -> closed
nosy:
+ mark.dickinson messages:
+ msg94380
resolution: invalid |
| 2009-10-23 10:24:27 | igor.mikushkin | create | |
|