Je n'aurais pas été jusqu'à ne garantissent rien du tout mais c'est un peu ça. Les compilateurs se comporte globalement de la même façon. Dans l'embarqué, tu connais généralement l'ensemble donc les structures sont plus esthétiques à mon sens et plus lisible. L'avantage des macros, c'est que tu n'as que l'endianess à gérer. C'est plus simple de faire du code portable. Par contre, même punition que les structure, les macro doivent être cantonnées à l'accès avec l'extérieur et recopier les données dans une structure interne propre.
Le padding dépend effectivement des deux, même si la principale contrainte vient du CPU. Sur le Power PC par exemple, il ne sait pas faire d'accès mémoire non aligné. Donc si tu force le compilo à ne pas aligner, pour chaque mot, il a 3 chances sur 4 de faire 2 accès mémoires (la deuxième en cache) plus de la recombinaison des données.
[^] # Re: suckless !! More is less !
Posté par Anthony Jaguenaud . En réponse au journal Pourquoi un PC ralentit-il ?. Évalué à 2.
Je n'aurais pas été jusqu'à ne garantissent rien du tout mais c'est un peu ça. Les compilateurs se comporte globalement de la même façon. Dans l'embarqué, tu connais généralement l'ensemble donc les structures sont plus esthétiques à mon sens et plus lisible. L'avantage des macros, c'est que tu n'as que l'endianess à gérer. C'est plus simple de faire du code portable. Par contre, même punition que les structure, les macro doivent être cantonnées à l'accès avec l'extérieur et recopier les données dans une structure interne propre.
Le padding dépend effectivement des deux, même si la principale contrainte vient du CPU. Sur le Power PC par exemple, il ne sait pas faire d'accès mémoire non aligné. Donc si tu force le compilo à ne pas aligner, pour chaque mot, il a 3 chances sur 4 de faire 2 accès mémoires (la deuxième en cache) plus de la recombinaison des données.