• [^] # Re: struct en C, struct en python

    Posté par (site web personnel) . En réponse au message Décomposer une structure C. Évalué à 1.

    Je ne me suis pas fait bien comprendre ; je m'explique donc.
    J'ai tilté lorsque j'ai vu que tu utilisais le #pragma pack(). Je me suis dit que tu devais faire un truc du style "write(mysocket, &mystruct, sizeof(mystruct));", ce qui est mal, car pas portable (au sens ou des machines différentes peuvent produire des trames différentes, donc ne pas se comprendre), en espérant produire une trame de la taille minimum.
    Pourtant tu as l'air de connaitre htonl() et c'est très bien ; donc peut être utilises tu le #pragma pack() pour une autre raison. Mais j'espère qu'elle est bonne, puisque ton code risque d'être plus lent comme je te l'ai dit.

    Donc non je ne dit pas que garder l'alignement rend les trames portables, je dit que comme tu vas serialiser les membres de ta structure un a un dans un gros buffer, tu vas pouvoir aligner les données comme bon te semble : l'alignement dans tes trames n'a rien à voir avec celui de ta structure en mémoire (donc ce que modifie pack()).

    Bon code ! :)