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.

classification
Title: Wrong byte count with struct
Type: behavior Stage: resolved
Components: Versions: Python 3.6
process
Status: closed Resolution: not a bug
Dependencies: Superseder:
Assigned To: Nosy List: Róbert Lexmann, christian.heimes
Priority: normal Keywords:

Created on 2018-01-24 10:52 by Róbert Lexmann, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Messages (4)
msg310584 - (view) Author: Róbert Lexmann (Róbert Lexmann) Date: 2018-01-24 10:52
struct.pack('id',a,b) returns 16 bytes, should return 4+8=12 bytes. struct.calcsize('id') also returns 16.
msg310585 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2018-01-24 11:00
It's not a bug. Please read the section about padding.

>>> struct.calcsize('id')
16
>>> struct.calcsize('>id')
12
msg310589 - (view) Author: Róbert Lexmann (Róbert Lexmann) Date: 2018-01-24 13:04
Thanks for a fast response. If I may ask, what is it good for to encode 
'id' in 16 bytes and 'di' in 12?

Rob

On 01/24/2018 12:00 PM, Christian Heimes wrote:
> Christian Heimes <lists@cheimes.de> added the comment:
>
> It's not a bug. Please read the section about padding.
>
>>>> struct.calcsize('id')
> 16
>>>> struct.calcsize('>id')
> 12
>
> ----------
> nosy: +christian.heimes
> resolution:  -> not a bug
> stage:  -> resolved
> status: open -> closed
>
> _______________________________________
> Python tracker <report@bugs.python.org>
> <https://bugs.python.org/issue32648>
> _______________________________________
msg310590 - (view) Author: Christian Heimes (christian.heimes) * (Python committer) Date: 2018-01-24 13:18
Hardware restrictions, some CPUs require types to be aligned in certain ways. Doubles must be aligned by multiple of 8 bytes.

Please read https://en.wikipedia.org/wiki/Data_structure_alignment and use the Python users mailing list for further questions.
History
Date User Action Args
2022-04-11 14:58:57adminsetgithub: 76829
2018-01-24 13:18:46christian.heimessetmessages: + msg310590
2018-01-24 13:04:15Róbert Lexmannsetmessages: + msg310589
2018-01-24 11:00:51christian.heimessetstatus: open -> closed

nosy: + christian.heimes
messages: + msg310585

resolution: not a bug
stage: resolved
2018-01-24 10:52:36Róbert Lexmanncreate