Re: problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage

Liste des GroupesRevenir à fcl python 
Sujet : Re: problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage
De : use.reply.to (at) *nospam* INVALID.ADDRESS (Benoit Izac)
Groupes : fr.comp.lang.python
Date : 04. Feb 2022, 20:15:38
Autres entêtes
Message-ID : <87zgn65whh.fsf@izac.org>
References : 1
Bonjour,

Le 04/02/2022 à 16:29, "pata...@gmail.com" <patatetom@gmail.com> a écrit
dans le message
<ab88a9d3-a634-40c7-82d1-61bf9c0cc7d2n@googlegroups.com> :

je rencontre un comportement étrange de la part de la fonction
calcsize du module struct.
>
voici le problème :
# 8<-----------
cd /tmp/
python --version
Python 3.10.1
python -m venv struct.test
source struct.test/bin/activate
python -c 'import struct; print(struct.calcsize("4sIQ4I2Q"), 4+4+8+(4*4)+(2*8))'
48 48
python -c 'import struct; print(struct.calcsize("4sIQ5I2Q"), 4+4+8+(5*4)+(2*8))'
56 52
python -c 'import struct; print(struct.calcsize("4sIQ6I2Q"), 4+4+8+(6*4)+(2*8))'
56 56
# 8<-----------
>
struct.calcsize("4sIQ5I2Q") ne retourne pas 52 comme attendu...
>
une explication ?

J'imagine que ça vient de là :
<https://en.wikipedia.org/wiki/Data_structure_alignment>, notamment
<https://en.wikipedia.org/wiki/Data_structure_alignment#Typical_alignment_of_C_structs_on_x86>.

--
Benoit Izac

Date Sujet#  Auteur
4 Feb 22 * problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage4pata...@gmail.com
4 Feb 22 `* Re: problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage3Benoit Izac
4 Feb 22  `* Re: problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage2Alain Ketterlin
5 Feb 22   `- Re: problème avec struct.calcsize qui retourne la même valeur alors qu'un entier non signé a été ajouté au formatage1pata...@gmail.com

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal