ginglese Posté(e) le 23 mai 2003 Partager Posté(e) le 23 mai 2003 bonjour, je voudrais avoir des infos sur l'influence d'un #pragma pack + autre infos. dans la doc ils disent qu'il agit sur la 1ère structure suivant le pragma mais est qu'il agit sur les suivantes. que se passe t'il si on defini #pragma pack dans un header inclue dans plusieurs autres fichier ? merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Invité Posté(e) le 31 mai 2003 Partager Posté(e) le 31 mai 2003 Salut, Le pragma pack permet d'aligner les structures. #pragma pack(push,1) te permet par exemple de "coller" toutes les variables de ta structure entre elles. Sans ça, tu peux avoir des "blancs" entre deux : struct { short _s; char _c; long _l; }mystruct; Entre _c et _l il peut y avoir 1 octet de perdu de par l'alignement. En effet, pour optimiser le code, le compilateur aura généré un octet de plus entre _c et _l afin que toutes les adresses des variables soient paires. (L'ordinateur travaillant plus vite avec des adresses paires.) La perte peut être plus importante, tout dépend du compilateur. Tu peux le plus souvent spécifier l'alignement au compilateur directement dans les options de compilation. Enfin, la façon "propre" de définir les pragma pack est de faire un #pragma pack(pop) à la fin de ton include pour éviter les effets de bord sur d'autres includes. Voici un lien où les explications seront plus détaillées : http://www.kamron.net/french/prog/tips.php Bon courage ! Irgoff Lien vers le commentaire Partager sur d’autres sites More sharing options...
ginglese Posté(e) le 2 juin 2003 Auteur Partager Posté(e) le 2 juin 2003 merci. j'avais déjà vue ce site. il ne réponds pas à mes questions ..... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.