This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author mark.dickinson
Recipients Manux, mark.dickinson
Date 2009-09-16.22:05:53
SpamBayes Score 9.154484e-06
Marked as misclassified No
Message-id <1253138755.55.0.428332068397.issue6924@psf.upfronthosting.co.za>
In-reply-to
Content
I think this is expected behaviour:  the key point is that structs can 
include padding bytes.  From the documentation:

"By default, C numbers are represented in the machine’s native format and 
byte order, and properly aligned by skipping pad bytes if necessary 
(according to the rules used by the C compiler)."

'Native' struct formats include padding, while 'standard' formats don't.

So a native struct with format 'BI' has one byte for the 'B', followed by 
3 padding bytes, followed by four bytes for the 'I'.  This exactly matches 
the way a C struct of the form {char c; int x;} would be organized in 
memory on that machine.
History
Date User Action Args
2009-09-16 22:05:56mark.dickinsonsetrecipients: + mark.dickinson, Manux
2009-09-16 22:05:55mark.dickinsonsetmessageid: <1253138755.55.0.428332068397.issue6924@psf.upfronthosting.co.za>
2009-09-16 22:05:53mark.dickinsonlinkissue6924 messages
2009-09-16 22:05:53mark.dickinsoncreate