Langage C Alignement des structures
Répondre à la discussion
Affichage des résultats 1 à 8 sur 8

Langage C Alignement des structures



  1. #1
    Médiat

    Langage C Alignement des structures


    ------

    Bonjour,

    Si j'ai une structure définie par

    typedef struct _Test
    {
    float x;
    short a;
    }Test;

    du fait de l'alignement des structures sizeof(Test) = 8 au lieu de 6. ce qui, en mémoire ne me dérage pas (au contraire), mais lorsque je veux écrire dans un fichier, ces 2 octets surnuméraires apparaissent dans chacun des enregistrements, causant le plantage du logiciel qui doit les lire (et dont je n'ai pas la maitrise).

    Existe-t-il un moyen simple de résoudre cela ? (autre que d'écrire le float, puis d'écrire le short, ce qui m'obligerait à casser un tableau de structures en petits morceaux)

    Merci d'avance

    -----
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  2. #2
    pm42

    Re : Langage C Alignement des structures

    Je suis un peu occupé mais à la louche et sauf erreur cela dépend du compilo et bien sur du proc qu'il cible. Je ne pense pas qu'il existe de solution portable sauf à essayer de magouiller avec des bitfields et/ou des unions.
    Ceci dit, il y a sans doute des gens plus pointus que moi en C dans le coin.

  3. #3
    Médiat

    Re : Langage C Alignement des structures

    Salut pm42,

    J'avais peur de ce type de réponse tout en espérant un flag (dans le source ou la ligne de commande du compilateur)

    Merci
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  4. #4
    pm42

    Re : Langage C Alignement des structures

    Tu utilises quoi comme compilo sur quel OS et quelle machine ?

  5. A voir en vidéo sur Futura
  6. #5
    Médiat

    Re : Langage C Alignement des structures

    Visual Studio 2017/Windows 10/ Intel(R) Core(TM) i7-3630QM CPU

    Et je précise que je suis très content de VS

    Ne perd pas trop de temps, mes recherches sur le NET ont été infructueuses, et j'espère juste que quelqu'un ayant eu le même problème passe par là.
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  7. #6
    pm42

    Re : Langage C Alignement des structures

    Et tu as vu ça ?

    https://docs.microsoft.com/fr-fr/cpp...?view=msvc-160

    et ça ?

    https://docs.microsoft.com/fr-fr/cpp...?view=msvc-160

    Parce que j'ai l'impression que dans ton cas un /zp ou mieux un pack pragma à 1 ou 2 ferait ce que tu veux.

  8. #7
    Médiat

    Re : Langage C Alignement des structures

    Comme je le disais souvent à mes prospects il y a quelques années :
    Au XVIième siècle il fallait tout savoir,
    Au XIXième siècle il fallait savoir où tout trouver
    Au XXième siècle ilf savoir poser la question.

    Ces 2 liens m'avaient échappés et je crois que c'est la bonne réponse (avec une préférence pour le pragma pack 2)

    Je fais un test ce soir et te tiens au courant, mais j'ai peu voire pas de doutes

    Merci beaucoup !
    Dernière modification par Médiat ; 27/10/2021 à 15h11.
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

  9. #8
    Médiat

    Re : Langage C Alignement des structures

    Comme prévu #pragma pack(2) marche parfaitement

    Merci beaucoup (une fois de plus)
    Je suis Charlie.
    J'affirme péremptoirement que toute affirmation péremptoire est fausse

Discussions similaires

  1. Tp c++ : structures et tableau des structures
    Par mathieu8510 dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 01/02/2016, 09h22
  2. Mécanique des structures / structures en nid d'abeille
    Par V_456 dans le forum TPE / TIPE et autres travaux
    Réponses: 3
    Dernier message: 12/10/2015, 07h12
  3. besoin d'aides structures (langage c)
    Par inviteeefebcee dans le forum Programmation et langages, Algorithmique
    Réponses: 6
    Dernier message: 22/05/2012, 08h37
  4. C : Initialisation de structures/tableaux de structures
    Par invitef1d0ad93 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 12/08/2008, 10h57